在浏览器控制台中,输入1===1计算为true. 输入1===1===1计算为false。
我认为这是因为评估语句的方式:
1 === 1 === 1
变成
(1 === 1) === 1
评估为
true === 1
这是false。
它是否正确?如果不是,这种行为的真正原因是什么?
在浏览器控制台中,输入1===1计算为true. 输入1===1===1计算为false。
我认为这是因为评估语句的方式:
1 === 1 === 1
变成
(1 === 1) === 1
评估为
true === 1
这是false。
它是否正确?如果不是,这种行为的真正原因是什么?
是的,你完全正确。这里有两个相等检查,它们具有相同的运算符优先级。第一个首先评估,然后其结果应用于下一个相等检查。
1===1===1(1===1)===1与which is true===1which is相同false,因为在这里您通过值及其类型进行检查。1==1==1将导致true,因为它仅通过值检查相等性,所以1==1==1等于(1==1)==1等于true==1等于true。
正确的行为。自从
1===1 // value is true
但
true===1 // it's false
有两个原因:
所以
1===1===1 // false
你提到的行为是正确的。
这是因为===意味着基于类型和值的匹配。
true === 1不匹配类型,但true == 1基于值匹配。
如果 1==1==1 则为真