javascript中的混乱';s逻辑运算符

javascript中的混乱';s逻辑运算符,javascript,Javascript,我对以下输出感到困惑 > console.log('0&&1') 0&&1 // ok > console.log(0&&1) 0 //ok 但当我安慰下面这个表达式时,它给出1。所以请帮助我理解这个概念 > console.log('0&&1'+0&&1) 1 +的优先级高于&&。因此,您的最后一个代码片段本质上相当于: console.log(('0&&1' + 0)

我对以下输出感到困惑

> console.log('0&&1')
0&&1 // ok  
> console.log(0&&1)
0 //ok
但当我安慰下面这个表达式时,它给出1。所以请帮助我理解这个概念

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

+
的优先级高于
&&
。因此,您的最后一个代码片段本质上相当于:

console.log(('0&&1' + 0) && 1)
这将成为:

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

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

值得一提的是,这与其他此类问题有关,我不得不问,谁在乎?如果您试图在混合中添加一个字符串和一个带有布尔运算符的数字,那么您只是在自找麻烦,应该做一些更明智的事情:D