1.js如何判断一个数组是"真数组"而非object?
使用Array.isArray()方法: Array.isArray()
是JavaScript中的一个内置函数,用于确定给定的值是否为数组。如果返回true,则表示该值是一个数组;如果返回false,则表示该值不是一个数组。
示例代码:
const arr = [1, 2, 3];
console.log(Array.isArray(arr)); // 输出 true,说明arr是一个数组
const obj = {a: 1, b: 2};
console.log(Array.isArray(obj)); // 输出 false,说明obj不是一个数组
使用instanceof操作符: instanceof操作符用于检测一个对象是否属于指定构造函数的实例。当一个对象是数组时,可以通过obj instanceof Array
来判断其是否为一个数组。
const arr = [1, 2, 3];
console.log(arr instanceof Array); // 输出 true,说明arr是一个数组
const obj = {a: 1, b: 2};
console.log(obj instanceof Array); // 输出 false,说明obj不是一个数组
第一种:Array.isArray
第二种:instanceof
第三种:通过constructor判断
instanceof和constructor的判定也存在一些弊端
第四种:通过Object.prototype.toString.call()判断
5.补充:typeof
(看了看论坛,感觉这位大哥写的不错,借用一下)