逻辑运算符||在JavaScript中,0代表布尔错误?
我碰巧知道下面的代码逻辑运算符||在JavaScript中,0代表布尔错误?
这里是代码,很简单:
var test = 0 || -1 ;
console.log(test);
然后在控制台输出-1
并不知我是真的新到JavaScript,
所有我想到的是,代表布尔型False in JS,所以||
运营商似乎忽略了0并将值-1赋值给变量
所以我对吗? 我只是想确认
-
||
-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
在[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
@Fuhrmanator正确。 – gdoron 2014-09-23 14:02:10
逻辑运算符是!.....谢谢你指出! – Lien 2012-03-06 07:15:13