逻辑运算符||在JavaScript中,0代表布尔错误?

问题描述:

我碰巧知道下面的代码逻辑运算符||在JavaScript中,0代表布尔错误?

这里是代码,很简单:

var test = 0 || -1 ; 
console.log(test); 

然后在控制台输出-1

并不知我是真的新到JavaScript,

所有我想到的是,代表布尔型False in JS,所以||运营商似乎忽略了0并将值-1赋值给变量

所以我对吗? 我只是想确认

+0

逻辑运算符是!.....谢谢你指出! – Lien 2012-03-06 07:15:13

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

    将返回EXPR1如果能够转化为真实的;否则,返回expr2。因此,当与布尔值一起使用时,||如果任一操作数为真,则返回true;如果两者都为假,则返回false ..

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

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

在Javascript中所有的值为 “truthy” 或 “falsy”。
下面的值是等效于误在条件语句

  • 未定义
  • 空字符串""(\ ''
  • 数字0
  • 编号NaN

其他所有值都等于true。


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

如果是var test = 0 || false || undefined || "" || 2 || -1它将返回2


MDN

+0

在[Practical Node.js](http://www.apress.com/9781430265955)中有以下代码:'var user = function(ops){{{name}:ops.name || 'John',姓氏:ops.name || 'Doe',电子邮件:ops.email || '[email protected]',name:function(){return this.firstName + this.lastName}}}' - 所以,我猜它分配了第一个值,如果它们是“truthy”(已定义)第二个值是默认值? – Fuhrmanator 2014-09-23 13:56:50

+0

@Fuhrmanator正确。 – gdoron 2014-09-23 14:02:10