我刚刚回答了这个问题,但我不明白为什么它会这样工作。
基本上问题可以简化为:
var b = new Boolean(false);
console.info(b == false); // Prints "true" - OK
console.info(b && true); // Prints "true" - but should be "false"
我假设正在进行一些不直观的自动转换,但我不明白它有时会自动转换为true
,有时会自动转换为false
。任何想法?
我想这更好地说明了这个问题:
> false && 123
false // OK
> new Boolean(false) && 123
123 // ???