ホームページ >ウェブフロントエンド >jsチュートリアル >JSで配列かどうかを判断する6つの方法
関連する推奨事項: 「JavaScript ビデオ チュートリアル 」
1. Array.isArray の判定
使用法: Array.isArray(arr)
Array.isArray
メソッドは、ES5、IE8、および以下はサポートされていません
Array.isArray()
渡された値が [Array] であるかどうかを判断するために使用され、ブール値 true を返します。それ以外の場合は false を返します。
let arr = []; console.log(Array.isArray(arr)); // true
// 下面的函数调用都返回 true Array.isArray([]); Array.isArray([1]); Array.isArray(new Array()); Array.isArray(new Array('a', 'b', 'c', 'd')) // 鲜为人知的事实:其实 Array.prototype 也是一个数组。 Array.isArray(Array.prototype);
##使用法: arr.constructor === Array
constructor があり、現在のオブジェクトの作成に使用される関数
let arr = []; console.log(arr.constructor === Array); // true
使用法: arr instanceof Array
instanceof は主にインスタンスを決定するために使用されます。これはオブジェクトに属しています
let arr = []; console.log(arr instanceof Array); // true注:instanceof 演算子の問題は、グローバル環境が 1 つだけ存在すると想定していることです。 Web ページに複数のフレームが含まれている場合、実際には 3 つ以上の異なるグローバル実行環境が存在し、したがって 3 つ以上の異なるバージョンの Array コンストラクターが存在します。あるフレームから別のフレームに配列を渡す場合、渡す配列には、2 番目のフレームでネイティブに作成された配列とは異なるコンストラクターが含まれます。 (元の言葉は Little Red Book の 88 ページにあります)
使用法: Array.prototype.isPrototypeOf(arr)
Array.prototype 属性は Array コンストラクターのプロトタイプを表します
isPrototypeOf()オブジェクトが別のオブジェクトのプロトタイプ チェーン上に存在するかどうかをテストするために使用できます。
let arr = []; console.log(Array.prototype.isPrototypeOf(arr)); // true
Object.prototype.toString.call ( arr) === '[オブジェクト配列]'配列は Object から継承し、JavaScript は
、toString.call( arr)## の toString をオーバーライドします。 # は実際にはプロトタイプチェーンを通じて呼び出されます。
let arr = []; console.log(Object.prototype.toString.call(arr) === '[object Array]'); // true
6. 配列プロトタイプ チェーン上の isPrototypeOfArray.prototype.isPrototypeOf( arr)Array.prototype
let arr = []; console.log(Array.prototype.isPrototypeOf(arr)); // true
ちなみに、の使用法を確認してください。 typeof:// 基本类型 typeof 123; //number typeof "abc"; //string typeof true; //boolean typeof undefined; //undefined typeof null; //object var s = Symbol; typeof s; //symbol // 引用类型 typeof [1,2,3]; //object typeof {}; //object typeof function(){}; //function typeof Array; //function Array类型的构造函数 typeof Object; //function Object类型的构造函数 typeof Symbol; //function Symbol类型的构造函数 typeof Number; //function Number类型的构造函数 typeof String; //function String类型的构造函数 typeof Boolean; //function Boolean类型的构造函数
プログラミング学習
! !以上がJSで配列かどうかを判断する6つの方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。