Home >Web Front-end >JS Tutorial >6 ways to determine whether it is an array in JS
Related recommendations: "javascript video tutorial"
1. Array.isArray judgment
Usage: Array.isArray(arr)
The Array.isArray
method is added in ES5, IE8 and The following is not supported
Array.isArray()
Used to determine whether the passed value is an [Array], returning a Boolean value of true; otherwise it returns 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);
##Usage: arr.constructor === Array
constructor, which is used to save the function used to create the current object
let arr = []; console.log(arr.constructor === Array); // true
Usage: arr instanceof Array
instanceof is mainly used to determine an instance Whether it belongs to an object
let arr = []; console.log(arr instanceof Array); // trueNote: The problem with the instanceof operator is that it assumes that there is only one global environment. If the web page contains multiple frames, there are actually more than two different global execution environments, and thus more than two different versions of the Array constructor. If you pass an array from one frame to another, the array you pass in will have a different constructor than the array created natively in the second frame. (Original words on page 88 of the Little Red Book)
Usage: Array.prototype.isPrototypeOf(arr)
Array.prototype The attribute represents the prototype of the Array constructor
isPrototypeOf()Can be used to test whether an object exists on the prototype chain of another object.
<pre class="brush:js;toolbar:false">let arr = [];
console.log(Array.prototype.isPrototypeOf(arr)); // true</pre>
Object.prototype.toString.call (arr) === '[object Array]'Array inherits from Object, JavaScript overrides toString on
, toString.call( arr)
is actually called through the prototype chain. <pre class="brush:js;toolbar:false">let arr = [];
console.log(Object.prototype.toString.call(arr) === &#39;[object Array]&#39;); // true</pre>
Array.prototype.isPrototypeOf( arr)
The attribute represents the prototype of the Array constructor<pre class="brush:js;toolbar:false">let arr = [];
console.log(Array.prototype.isPrototypeOf(arr)); // true</pre>
// 基本类型 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类型的构造函数
For more programming-related knowledge, please visit:
Programming LearningThe above is the detailed content of 6 ways to determine whether it is an array in JS. For more information, please follow other related articles on the PHP Chinese website!