javascript - 哪种方法最准确,我选的是第二个。
PHPz
PHPz 2017-04-11 12:29:10
[JavaScript讨论组]

如何判断一个js对象是否是Array,arr为要判断的对象,其中最准确的方法是?

  typeof(arr);
  arr instanceof Array
  arr.toString==='[object Array]';
  Object.prototype.toString.call(arr) === '[object Array]';
  
  

在什么情况下用什么方法呢

PHPz
PHPz

学习是最好的投资!

全部回复(5)
黄舟

1.typeof一定是不准确的,因为会给你返回“object”
2.没问题,返回布尔值
3.基本没问题,但是容易被改写,不如prototype安全
4.没问题,基本很少有人去改写prototype上的属性方法

PHP中文网

Array.isArray()在IE8以下版本不可用,用第四个方法一般肯定没问题的。

所以比较好的办法是

if (!Array.isArray) {
  Array.isArray = function(arg) {
    return Object.prototype.toString.call(arg) === '[object Array]';
  };
}

underscore.js使用的就是这个办法

迷茫

Array.isArray([])

伊谢尔伦

最后一种方法没有局限性,推荐最后一种

阿神

也就 第二种 和 最后 一种 有用
不过 我 觉得 最后 一种 好点

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号