比较两个数字的更有效方法

时间:2018-09-06 15:11:47

标签: javascript performance comparison

我面临着挑战,要在JavaScript中查看两个数字是否相等,而无需使用'='运算符,所以我想到了:

function isEqual(a, b) {
    try {
        [{ foo: true }][a - b].foo
    }
    catch (e) {
        return false
    }
    return true
}

但是我认为必须有一种更有效的方法,所以我正在寻找选择。

1 个答案:

答案 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

相关问题