Home > Web Front-end > JS Tutorial > 6 ways to determine whether it is an array in JS

6 ways to determine whether it is an array in JS

青灯夜游
Release: 2021-01-11 18:29:03
forward
3953 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)

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

instanceof is 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.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. <div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:js;toolbar:false">let arr = []; console.log(Array.prototype.isPrototypeOf(arr)); // true</pre><div class="contentsignin">Copy after login</div></div><div class="contentsignin">Copy after login</div></div>

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. <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:js;toolbar:false">let arr = []; console.log(Object.prototype.toString.call(arr) === &amp;#39;[object Array]&amp;#39;); // true</pre><div class="contentsignin">Copy after login</div></div>

6. isPrototypeOf on the Array prototype chain

Usage:

Array.prototype.isPrototypeOf( arr)

Array.prototype

The attribute represents the prototype of the Array constructor<div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:js;toolbar:false">let arr = []; console.log(Array.prototype.isPrototypeOf(arr)); // true</pre><div class="contentsignin">Copy after login</div></div><div class="contentsignin">Copy after login</div></div>

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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template