Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
逻辑运算符| |在javascript中,0代表布尔值false?_Javascript_Boolean_Logical Operators_Or Operator - Fatal编程技术网

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

逻辑运算符| |在javascript中,0代表布尔值false?,javascript,boolean,logical-operators,or-operator,Javascript,Boolean,Logical Operators,Or Operator,我碰巧知道下面的代码 下面是代码,非常简单: var test = 0 || -1 ; console.log(test); 然后控制台中的输出为-1 不知怎的,我对javascript真的很陌生 我想到的是0在JS中代表布尔False,因此|操作符似乎忽略了0,并将值-1赋给变量 我说的对吗? 我只想确认一下 | |-expr1 | | expr2(逻辑或) 如果可以将expr1转换为true,则返回expr1;否则,返回expr2。因此,当与布尔值一起使用时,如果任一操作数为真,则返回真;

我碰巧知道下面的代码

下面是代码,非常简单:

var test = 0 || -1 ;
console.log(test);
然后控制台中的输出为-1

不知怎的,我对javascript真的很陌生

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

我说的对吗? 我只想确认一下
  • | |
    -
    expr1 | | expr2
    (逻辑或)

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

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

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

  • Javascript中的所有值都是“truthy”或“falsy”。
    以下值在条件语句中等于false:

    • 假的
    • 空的
    • 未定义
    • 空字符串
      “”
      (\
      “”
    • 数字0
    • 号码是NaN
    所有其他值都等于true。


    所以<代码>var测试=0 | |-1返回
    -1

    如果它是
    var test=0 | | | | | | | |未定义| |“| | 2 | |-1
    它将返回
    2



    逻辑运算符打开

    是!。。。。。谢谢你的指点!其中有以下代码:
    var user=function(ops){return{firstName:ops.name | | |“John”,lastName:ops.name | | |“Doe”,email:ops.email | |”test@test.com,name:function(){return this.firstName+this.lastName}}}
    --因此,我猜如果第一个值是“truthy”(已定义),它会赋值否则第二个值是默认值?@Fuhrmanator是的,这是正确的。|和&&不(一定)返回布尔值。它们可以更好地描述为操作数选择器运算符。在| |的情况下,如果第一个操作数可以强制为true,则返回第一个操作数,否则返回第二个操作数。&&具有相反的行为。