6 ways to determine whether it is an array in JS

青灯夜游
Release: 2021-01-11 18:29:03
forward
3887 people have browsed it

6 ways to determine whether it is an array in JS

Related recommendations: "javascript video tutorial"

1. Array.isArray judgment

Usage:Array.isArray(arr)

TheArray.isArraymethod 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
Copy after login
// 下面的函数调用都返回 true Array.isArray([]); Array.isArray([1]); Array.isArray(new Array()); Array.isArray(new Array('a', 'b', 'c', 'd')) // 鲜为人知的事实:其实 Array.prototype 也是一个数组。 Array.isArray(Array.prototype);
Copy after login

2. Constructor judgment

##Usage:arr.constructor === Array

Each instance of Object has a constructor

constructor, which is used to save the function used to create the current object

let arr = []; console.log(arr.constructor === Array); // true
Copy after login

3. instanceof judgment

Usage:arr instanceof Array

instanceofis mainly used to determine an instance Whether it belongs to an object

let arr = []; console.log(arr instanceof Array); // true
Copy after login

Note: 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)

4. Judgment of isPrototypeOf on the prototype chain

Usage:Array.prototype.isPrototypeOf(arr)

Array.prototypeThe 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.

let arr = []; console.log(Array.prototype.isPrototypeOf(arr)); // true
Copy after login
Copy after login

5. Object.prototype.toString

##Usage:

Object.prototype.toString.call (arr) === '[object Array]'Array inherits from Object, JavaScript overrides toString on

Array.prototype

,toString.call( arr)is actually called through the prototype chain.

let arr = []; console.log(Object.prototype.toString.call(arr) === '[object Array]'); // true
Copy after login

6. isPrototypeOf on the Array prototype chain

Usage:

Array.prototype.isPrototypeOf( arr)

Array.prototype

The attribute represents the prototype of the Array constructor

let arr = []; console.log(Array.prototype.isPrototypeOf(arr)); // true
Copy after login
Copy after login

By the way, review the usage of typeof:For reference types, typeof cannot be used to judge, because all returned are objects

// 基本类型 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类型的构造函数
Copy after login

For more programming-related knowledge, please visit:

Programming Learning

! !

The 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!

Related labels:
source:segmentfault.com
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!