首页 > 解决方案 > javascript逻辑运算符的混乱

问题描述

我对以下输出感到困惑。

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

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

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

标签: javascript

解决方案


+的优先级高于&&。所以你的最后一个片段基本上相当于:

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

这将变成这样:

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

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


推荐阅读