JavaScript的逻辑运算符混乱

时间:2018-08-02 13:34:42

标签: javascript

我对以下输出感到困惑。

> console.log('0&&1')
0&&1 // ok  
> console.log(0&&1)
0 //ok

但是当我操纵下面的表达式时,它给出1。所以请帮助我理解这个概念

> console.log('0&&1'+0&&1)
1 

1 个答案:

答案 0 :(得分:4)

+的优先级高于&&。因此,您的最后一个片段基本上等于:

console.log(('0&&1' + 0) && 1)

将变成这个:

console.log('0&&10' && 1)

由于非空字符串是真实值,因此返回值为1。