为什么`1&& true`得到一个bool值`true`,但是`0&& true`得到一个数字`0`?

时间:2012-11-02 20:20:40

标签: javascript

为什么1 && true获得bool值true,但0 && true得到一个数字0? 我在Chrome控制台和Firebug中测试了它。

3 个答案:

答案 0 :(得分:6)

如果expr1 && expr2为假,expr1会返回expr2,否则会返回{{1}}。

答案 1 :(得分:4)

因为这就是Javascript中的逻辑运算符defined的行为方式。

其他参考:ECMA 262,第83页。

答案 2 :(得分:2)

&&运算符通常称为逻辑运算符。如果第一个操作数为false,null,undefined,“”或数字0,则返回第一个操作数。否则,它返回第二个操作数