龙空技术网

2023前端面试题-前端Js面试题-js判断是不是数组的方式有哪些?

it丶小六 152

前言:

而今各位老铁们对“判断数组js”大体比较关怀,朋友们都需要学习一些“判断数组js”的相关内容。那么小编在网上汇集了一些关于“判断数组js””的相关知识,希望大家能喜欢,同学们快快来了解一下吧!

判断一个变量是否为数组,可以使用以下几种方式:

一、Array.isArray()

可以使用 Array.isArray() 方法判断一个变量是否为数组,该方法在 ES5 中被引入。例如:

const arr = [1, 2, 3];console.log(Array.isArray(arr)); // 输出 trueconst str = 'hello';console.log(Array.isArray(str)); // 输出 false

二、instanceof

可以使用 instanceof 运算符判断一个变量是否为数组,该运算符会检查一个对象的原型链中是否存在某个构造函数的原型。例如:

const arr = [1, 2, 3];console.log(arr instanceof Array); // 输出 trueconst str = 'hello';console.log(str instanceof Array); // 输出 false

需要注意的是,如果在多个窗口或框架中使用 instanceof 运算符,由于它检查的是对象的原型链,可能会出现跨窗口或框架检查失败的情况。

三、Object.prototype.toString.call()

可以使用 Object.prototype.toString.call() 方法判断一个变量是否为数组,该方法返回一个以 [object Xxx] 格式表示对象类型的字符串,其中 Xxx 是对象的类型。如果输出 [object Array]则是数组类型。例如:

const arr = [1, 2, 3];console.log(Object.prototype.toString.call(arr)); // 输出 [object Array] 数组类型const str = 'hello';console.log(Object.prototype.toString.call(str)); // 输出 [object String] 字符串类型

需要注意的是,如果直接使用 toString() 方法,则返回的是数组对象的字符串表示,而不是 [object Array] 的字符串。例如:

const arr = [1, 2, 3];console.log(arr.toString()); // 输出 1,2,3

综上,推荐使用 Array.isArray() 方法来判断一个变量是否为数组,因为它是最简单、最直观的方式。

更多前端面试题请看:

存图扫:

标签: #判断数组js