ホームページ  >  記事  >  ウェブフロントエンド  >  JS判定配列の詳しい紹介

JS判定配列の詳しい紹介

小云云
小云云オリジナル
2018-01-25 13:14:071934ブラウズ

配列を判断するにはどうすればよいですか?知っている友人もいるはずですが、js が配列をどのように判断するのか理解できない友人もいます。以下のエディターがこの問題に関する情報を集めて整理しました。興味のある方はぜひご覧ください。配列を判断するための JS の知識を習得していただければ幸いです。

typeof 演算子

typeof はこの型の文字列を返します

 var a = '123'
 console.log(typeof(a)) //string
 var b = []
 console.log(typeof(b)) //object
 var c = {}
 console.log(typeof(c)) //object
 var d = null
 console.log(typeof(d)) //object

上記のように、typeof によって返される配列オブジェクトはすべてオブジェクトです。このメソッドは、それが配列であるかどうかを識別できません。

プロトタイプ コンストラクター。 chainメソッド

Instantizationには、コンストラクター属性がオブジェクトの配列を生成するメソッドを指します

 var a = []
 console.log(a.__proto__.constructor) //ƒ Array() { [native code] }
 var b = {}
 console.log(b.__proto__.constructor) //ƒ Object() { [native code] }

上記の通り、Array関数で配列をインスタンス化し、Object関数でオブジェクトをインスタンス化するメソッドだと感じます。 OK、ただしコンストラクター属性は上書きできます

  var a = []
  a.__proto__.constructor = Object
  console.log(a.__proto__.constructor) //ƒ Object() { [native code] }

これはオブジェクトになったかどうかを判断するための配列になっていることがわかります。そのため、このメソッドは最良の

インスタンスではありません

このメソッドは、あるコンストラクターのprototype属性が指すオブジェクトが別の検出対象オブジェクト内に存在する オブジェクトのプロトタイプチェーン上にある

  var a = []
  console.log(a instanceof Array) //a对象的原型链上能找到Array true
  console.log(a instanceof Object) //true 原型链上也能找到对象

上記は配列なのかオブジェクトなのかを判断するのは特に簡単ではありません

普遍的な方法toString

toString() メソッドは、このオブジェクトを反映する文字列を返します

  var a= '123'
  console.log(a.toString()) //123
  var b = [1,2,3]
  console.log(b.toSting()) //1,2,3
  var c = {}
  console.log(c.toString)) //[object Object]

オブジェクトのみが返されることがわかります。オブジェクト タイプ

戻り値 [オブジェクト タイプ] type はオブジェクトのタイプを表します

オブジェクトを決定するには、オブジェクトの toString メソッドでそれを取得して使用します

 var a =[]
 Object.prototype.toString.call(a) //[object Array]

このオブジェクトの toString メソッドは、それが配列であるかどうかを判断できます

しかし、ここには状況があることに注意してください

オブジェクトのプロトタイプの toString() も変更することができます

Array.isArray(XX)
個人的には、より信頼性の高い一般的なメソッド toString() を今でも使用しています

関連する推奨事項:

js は、配列に文字列変数が含まれているかどうかを判断します

JavaScript で in_array 関数を使用して判断する方法の詳細な説明配列の使用法

配列が空かどうかを判断するための PHP の一般的なメソッド (5 つのメソッド)

以上がJS判定配列の詳しい紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。