如何判断一个js对象是否是Array,arr为要判断的对象,其中最准确的方法是?
typeof(arr);
arr instanceof Array
arr.toString==='[object Array]';
Object.prototype.toString.call(arr) === '[object Array]';
在什么情况下用什么方法呢
如何判断一个js对象是否是Array,arr为要判断的对象,其中最准确的方法是?
typeof(arr);
arr instanceof Array
arr.toString==='[object Array]';
Object.prototype.toString.call(arr) === '[object Array]';
在什么情况下用什么方法呢
Array.isArray()在IE8以下版本不可用,用第四个方法一般肯定没问题的。
所以比较好的办法是
if (!Array.isArray) {
Array.isArray = function(arg) {
return Object.prototype.toString.call(arg) === '[object Array]';
};
}
underscore.js使用的就是这个办法
1 回答862 阅读✓ 已解决
1 回答1.1k 阅读
2 回答780 阅读
2 回答622 阅读
2 回答610 阅读
1 回答685 阅读
2 回答531 阅读
1.
typeof一定是不准确的,因为会给你返回“object”2.没问题,返回布尔值
3.基本没问题,但是容易被改写,不如
prototype安全4.没问题,基本很少有人去改写
prototype上的属性方法