Java Script:Array.length表达式求值为boolean

时间:2017-06-30 15:58:08

标签: javascript if-statement numbers boolean

如果我需要表达式来评估布尔值作为结果,如何检查数组长度?例如:

var myArray = [];
if(!myArray.length){
  return;
}

或者:

vr myArray = [];
if(myArray.length == 0){
  return;
}

这两个例子都有效,但我想了解有什么区别?

2 个答案:

答案 0 :(得分:1)

此处!myArray.length会在两种情况下返回true

  • 如果myArray.length===0因为0 falsy value ,那么!0将返回true
  • 如果myArray.lengthundefined,换句话说,myArray不是array,因此它没有length属性,其中{{1} }} falsy value

第一个解释了为什么undefined!myArray.length在您的情况下都是等效的。

答案 1 :(得分:0)

这是因为length函数返回一个数字,当您使用数字作为条件时,0NaN被评估为false(在其他情况下被评估为{ {1}})。