Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/374.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_Boolean - Fatal编程技术网

JavaScript中布尔值上的数学运算符

JavaScript中布尔值上的数学运算符,javascript,boolean,Javascript,Boolean,有人能解释一下以下JavaScript代码的执行顺序吗: (true + false) > 2 + true 我知道对两个布尔值使用+运算符会根据提供的值返回0、1或2的结果 通过按以下顺序中断执行,我将上述代码的输出解释为1: 1) (true + false) // Outputs : 1 2) 1 > 2 // Outputs : false 3) false + true //Outputs : 1 但实际结果是: false 如果我以错误的方式解释代码,有人能纠正我的

有人能解释一下以下JavaScript代码的执行顺序吗:

(true + false) > 2 + true
我知道对两个布尔值使用+运算符会根据提供的值返回0、1或2的结果

通过按以下顺序中断执行,我将上述代码的输出解释为1:

1) (true + false) // Outputs : 1
2) 1 > 2 // Outputs : false
3) false + true //Outputs : 1
但实际结果是:

false

如果我以错误的方式解释代码,有人能纠正我的理解吗

您的
2nd
点不正确

1) (true + false) outputs - 1
2) (2 + true) - outputs 3
3) 1 > 3 - outputs false
您可以使用函数来检查这一点

(真+假)>2+真
函数f1(){
const cond=真+假;
控制台日志(cond);
返回条件;
}
函数f2(){
const cond=2+真;
控制台日志(cond);
返回条件;
}

log(f1()>f2())你的问题有三个部分

  • (…)
    的最高优先级为20

  • +
    ,优先级为13,以及

  • (此处)的最小值为11

这意味着优先级较高的运算符将首先计算,优先级较低的运算符将首先计算

(true + false) > 2 + true
(true + false)             -> 1
                 2 + true  -> 3

             1 > 3         -> false

那么你的意思是首先执行两个+运算符,然后进行比较?是的,对于第一个示例。第二个将在括号内工作,而不是
+true