Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/432.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,我有点糊涂了!为什么偏执不影响这些陈述中的优先级 true === '0' == 0 // returns true (true === '0') == 0 // returns true again! 因为(true=='0')是false,false==0在这两种情况下都是true 换言之: (true=='0')==0 决心 false==0 这是正确的。因为操作符=和==具有从左到右的关联性。这两个表达式的解释相同。考虑下面的表达式来解释结果是什么: true === '0' // f

我有点糊涂了!为什么偏执不影响这些陈述中的优先级

true === '0' == 0 // returns true
(true === '0') == 0 // returns true again!
因为
(true=='0')
是false,
false==0
在这两种情况下都是true

换言之:

(true=='0')==0

决心

false==0


这是正确的。

因为操作符
=
==
具有从左到右的关联性。这两个表达式的解释相同。考虑下面的表达式来解释结果是什么:

true === '0' // false
// so: true === '0' == 0    is  false == 0    and;
//     (true === '0') == 0  is  (false) == 0  is  false == 0  and;
false == 0   // true

快乐编码。

因为
true==“0”
的计算结果为
false
,而
false==0
为true。(因为
false
和0都是“非真实的”)

> true === '0'
  false
> false == 0
  true

请记住,
==
比较严格相等,并且
=
测试相等与转换。

不是优先级不同,而是两个分组的计算结果均为真:

true==“0”
false

false==0
true

'0'==0
true

true===true
is
true

您可能需要查看

这一项的计算结果是:

false == 0 // which is true

因为(true=='0')为false,false==0为true,在本例中,如果希望JavaScript返回false,则JavaScript不会执行严格的类型比较更改第二部分为===

,因为true=='0'返回false,false==0返回true

即使有妄想症,你的第一次检查总是会返回false和false

false == 0 will always return true

===将检查值是否完全相同(类型inculded)。因此,由于您将字符与布尔值进行比较,结果始终为false。

使用括号,您没有更改执行顺序。它是从左到右的,甚至没有括号。左部分true=='0'返回0

0==0返回true,因此最终答案在两次都为true

但是表达方式是一样的,把这一点去掉是一个很大的疏忽。考虑添加case <代码>真值===(‘0’=0)< /代码>以显示实际做某事的括号(这将生成第二种情况)。否则答案很好。
false == 0 will always return true