关于数组为空判断问题

var a = [];
if (a) {
    console.log('1');
}

这时候为什么不会把a置成0?

阅读 2.2k
4 个回答
var a = [];
if (a.length) {
    console.log('1');
}

数组是个对象, 空数组转换成布尔值也是true, 所以要判断length

typeof(a)一下,得出的结果你就明白了。

var arr = [];

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

if(Array.isArray(arr) && arr.length === 0){
    console.log('是空数组');
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题