为什么括号不';在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
istrue
您可能需要查看
这一项的计算结果是:
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