代码之家  ›  专栏  ›  技术社区  ›  Ricardo Costa

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

  •  0
  • Ricardo Costa  · 技术社区  · 6 年前

    我被要求在javascript中查看两个数字是否相等,而不使用“=”运算符,所以我想到了这个:

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

    1 回复  |  直到 6 年前
        1
  •  2
  •   CodeDraken    6 年前

    从技术上讲,最快的方法是使用位运算符。在JavaScript中使用此方法比使用 == .

    !(a^b) (a^b) == 0

    !(1^1) // true
    !(2^1) // false
    

    注意:这不适用于浮点数和32位整数范围以外的值。(感谢徐福克斯指出这一点)

    https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Bitwise_Operators