如果两个操作数的类型不同,则JavaScript转换操作数,然后应用严格比较.如果操作数是数字或布尔值,操作数将尽可能转换为数字; 否则,如果任一操作数是字符串,则另一个操作数将转换为字符串(如果可能).
考虑到这一点,我会评估"true" == true如下:
isNaN(Number("true")) // true)String(true) === "true" // true)我已经结束了与弦"true"和"true",这应该求true,但JavaScript的显示错误.
我错过了什么?
考虑空的JavaScript数组:
var a = [];
alert(a == false); // shows true
alert(!a); // shows false!
Run Code Online (Sandbox Code Playgroud)
怎么解释这个?规则是什么?