kar*_*una 12 javascript arrays
这返回true:
[] == false
Run Code Online (Sandbox Code Playgroud)
但在这里,警报被称为:
if([]){ alert('empty array is true here'); }
Run Code Online (Sandbox Code Playgroud)
你能解释一下原因吗?
Ja͢*_*͢ck 14
据部分11.9.3中的ECMAScript®语言规范,任何==如下比较完成的:
在第一步,ToNumber()适用于false和屈服Number(0).在第二步中,规则#9适用ToPrimitive()于空数组,并且""转换为数值的转换Number(0)也是如此.
另外9.2节说明了在表达式中使用对象:
抽象操作
ToBoolean根据此表将其参数转换为Boolean类型的值:
这是因为==在JS强制转换中并且如果一种类型可以转换为另一种类型,则返回值是true这里因为[]不能更改或与bool进行比较它是假的
,因为if([])检查null和undefined值以及因为[]既不是null也不是未定义它是回归真实
检查 在JavaScript比较中应该使用哪个等于运算符(== vs ===)?