我这样说是否正确:
if (y === x) {
//statement a
} else {
//statement b
}
比这更有效:
if (y !== x) {
//statement b
} else {
//statement a
}
注意:声明的顺序。
最佳答案
首先,我要说“不”,或者至少不能可靠地确定它,因为它最终最终将取决于实现。
话虽这么说,!==
还有规范中描述的另一个步骤,即返回比较结果的反面。否则它们是相同的。
11.9.4严格等于运算符(===)
生产EqualityExpression:EqualityExpression === RelationalExpression的评估如下:
令lref为评估EqualityExpression的结果。
令lval为GetValue(lref)。
令rref为评估RelationalExpression的结果。
令rval为GetValue(rref)。
返回执行严格相等比较的结果rval === lval。 (见11.9.6)
11.9.5严格不等于运算符(!==)
生产EqualityExpression:EqualityExpression!== RelationalExpression的评估如下:
令lref为评估EqualityExpression的结果。
令lval为GetValue(lref)。
令rref为评估RelationalExpression的结果。
令rval为GetValue(rref)。
令r为执行严格相等比较的结果rval === lval。 (见11.9.6)
如果r为true,则返回false。否则,返回true。
我让您决定是否应该关注该步骤,但是同样,这只是语言规范。谁知道实现的窍门。