sur*_*lit 32 javascript boolean-logic operators
在浏览器控制台中,输入1===1
计算结果true
.输入1===1===1
评估为false
.
我认为这是因为评估语句的方式:
1 === 1 === 1
变
(1 === 1) === 1
评估为
true === 1
是的false
.
它是否正确?如果没有,这种行为的真正原因是什么?
aga*_*aga 40
是的,你说得对.这里有两个相等检查,它们具有相同的运算符优先级.首先评估第一个,然后将其结果应用于下一个等式检查.
1===1===1
是一样的(1===1)===1
是true===1
它是false
,因为在这里你的价值观和他们的类型检查.1==1==1
将导致true
的,因为它由只有值,所以检查平等1==1==1
等于(1==1)==1
等于true==1
等于true
.
Dav*_*vid 20
该===
运营商不只是测试的平等,而是还可以键入平等.由于整数不是布尔值,因此true === 1
为false.
相比:
true == 1; // true
true === 1; // false
Run Code Online (Sandbox Code Playgroud)
例子.