我对以下输出感到困惑。
> console.log('0&&1')
0&&1 // ok
> console.log(0&&1)
0 //ok
但是当我操纵下面的表达式时,它给出1。所以请帮助我理解这个概念
> console.log('0&&1'+0&&1)
1
答案 0 :(得分:4)
+
的优先级高于&&
。因此,您的最后一个片段基本上等于:
console.log(('0&&1' + 0) && 1)
将变成这个:
console.log('0&&10' && 1)
由于非空字符串是真实值,因此返回值为1。