逻辑运算符|| 在javascript中,0代表布尔值false?

Lie*_*ien 4 javascript boolean logical-operators or-operator

我碰巧知道以下代码

这是代码,非常简单:

var test = 0 || -1 ;
console.log(test);
Run Code Online (Sandbox Code Playgroud)

然后控制台中的输出为-1

不知怎的,我真的是新的javascript,

我想到的是,0代表JS中的布尔值False,因此||运算符似乎忽略0并将值-1赋给变量

我是对的吗?我只是想确认一下

gdo*_*ica 16

  • ||- expr1 || expr2 (逻辑或)

    如果可以转换为true,则返回expr1; 否则,返回expr2.因此,当与布尔值一起使用时,|| 如果任一操作数为true,则返回true; 如果两者都为假,则返回false ..

  • &&- expr1 && expr2 (逻辑AND)

    如果可以转换为false,则返回expr1; 否则,返回expr2.因此,当与布尔值一起使用时,如果两个操作数都为真,则&&返回true; 否则,返回false.

Javascript中的所有值都是"truthy"或"falsy".条件语句中
的以下值等于false :

  • 空值
  • 未定义
  • 空字符串""(\ '')
  • 数字0
  • 数量NaN

所有其他值都等于true.


所以...... var test = 0 || -1 ;回归-1.

如果 var test = 0 || false || undefined || "" || 2 || -1它会回来2


MDN上的逻辑运算符