Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/473.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 逻辑运算符| |返回数字而不是布尔值_Javascript - Fatal编程技术网

Javascript 逻辑运算符| |返回数字而不是布尔值

Javascript 逻辑运算符| |返回数字而不是布尔值,javascript,Javascript,我附加了一个带有两个if条件的示例。第一个if条件按预期工作。第二个if条件返回11,但为什么?我知道第二个if条件是错误的,但我想理解为什么Javascript在这种情况下返回11 function exception(number) { // if(number === 10 || number === 11) { // Working as expected if(number === 10 || 11) { // Why 11? console.log(number

我附加了一个带有两个if条件的示例。第一个if条件按预期工作。第二个if条件返回11,但为什么?我知道第二个if条件是错误的,但我想理解为什么Javascript在这种情况下返回11

function exception(number) {
// if(number === 10 || number === 11) { // Working as expected
   if(number === 10 || 11) { // Why 11?
        console.log(number);
   }
}

function loop(f) {
    for (i = 0; i <= 100; i++) {
        f(i);
    }
}

loop(exception);

有关您在何处尝试实现目标的一些信息:

数字===10 | |数字===11与数字===10 | |数字===11相同 数字===10 | | 11与数字===10 | | 11相同。此处不将11与数字进行比较 现在让我们仔细看看number==10 | | 11:

如果number为number类型且等于10,则number==10将为真 如果第一个为false,它将计算下一个语句的布尔值:11,它被接受为true,因为它是一个不等于0的数字
有关您在何处尝试实现目标的一些信息:

数字===10 | |数字===11与数字===10 | |数字===11相同 数字===10 | | 11与数字===10 | | 11相同。此处不将11与数字进行比较 现在让我们仔细看看number==10 | | 11:

如果number为number类型且等于10,则number==10将为真 如果第一个为false,它将计算下一个语句的布尔值:11,它被接受为true,因为它是一个不等于0的数字 从

如果可以将expr1转换为true,则返回expr1;否则,返回 expr2

因此,当expr1为0、false、null、undefined、NaN或其计算结果为其中一个时,则返回expr2,否则返回expr1

如果可以将expr1转换为true,则返回expr1;否则,返回 expr2

因此,当expr1为0、false、null、undefined、NaN或其计算结果为0时,则返回expr2,否则返回expr1,因为Boolean11为true,请在控制台上尝试

因此,即使第一个条件不是真的,如果数字不是10,那么第二个条件将始终是真的,因为Boolean11是真的,请在控制台上尝试


因此,即使第一个条件不是真的,如果数字不是10,那么第二个条件将始终是真的

任何非零数字的可能重复被视为真的,并且在转换为布尔值时将返回真的。仅供参考:有时只需执行[10,11]即可。indexOfnumber!==-1任何非零数字的可能重复项的可能重复项被视为真值,并在转换为布尔值时返回真值。仅供参考:如果[10,11],有时只需执行此操作即可。indexOfnumber!==-1个可能的副本,您可以添加有关操作员的说明precedence@CodeiSir:谢谢。现在我明白了。你可以添加关于操作员的解释precedence@CodeiSir:谢谢。现在我明白了。我喜欢这个答案,因为你实际上解决了为什么条件表达式返回11我想他知道,问题是他认为数字===10 | |数字===11将与数字===10 | | 11相同,我喜欢这个答案,因为你实际上解决了为什么条件表达式返回11我想他知道,问题是他认为数字===10 | |数字===11和数字===10 | | 11是一样的
(expr1 || expr2)