1. `Array.isArray()` 方法
这是 ECMAScript 5 引入的标准、最直接也最为推荐的方法来判定变量是否为数组:
javascript
function isArray(value) {
return Array.isArray(value);
}
let arr = [1, 2, 3];
console.log(isArray(arr)); // 输出:true
let notArr = "I am not an array";
console.log(isArray(notArr)); // 输出:false
`Array.isArray()` 是原生提供的全局函数,它会返回传入参数 value 是否是一个 Array 对象实例。
2. 利用 Object.prototype.toString.call()
如果考虑到兼容早期浏览器(不支持 ES5),可以使用以下方式:
javascript
function isArray(obj) {
return Object.prototype.toString.call(obj) === '[object Array]';
}
var myArray = [];
console.log(isArray(myArray)); // 输出: true
var nonArray = {};
console.log(isArray(nonArray)); // 输出: false
这种方法通过调用内置的 toString() 函数并结合 call() 来获取到 obj 的类字符串表示形式,对于数组而言,该表现形总是 `[object Array]`.
总结来说,在现代环境中建议优先采用标准的 `Array.isArray()` 进行判断以确保代码简洁性和可读性;而在必须兼顾旧版环境时,则可以选择利用原型上的toString方法来进行判断。无论选择哪种方案,请始终牢记正确的类型检测有助于提升程序健壮性和稳定性。