我面临着挑战,要在JavaScript中查看两个数字是否相等,而无需使用'='运算符,所以我想到了:
function isEqual(a, b) {
try {
[{ foo: true }][a - b].foo
}
catch (e) {
return false
}
return true
}
但是我认为必须有一种更有效的方法,所以我正在寻找选择。
答案 0 :(得分:1)
技术上最快的方法是使用按位运算符。在JavaScript中,此方法比使用==
快35%。
!(a^b)
或(a^b) == 0
示例:
!(1^1) // true
!(2^1) // false
注意:这不适用于浮点数和32位整数范围之外的值。 (感谢Xufox指出了这一点)
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Bitwise_Operators