代码之家  ›  专栏  ›  技术社区  ›  DLS

Javascript中是否有逻辑运算符(&L)

  •  6
  • DLS  · 技术社区  · 14 年前

    我想知道是否有一个“&Javascript中的逻辑运算符。我试过运行1&0和1&&Firebug(Firefox)中的0,它为这两个都返回了0。

    有什么想法吗?

    7 回复  |  直到 14 年前
        1
  •  10
  •   Josh Stodola    14 年前

    不。 & 是一个 bitwise AND 接线员。 && 是Javascript中唯一的逻辑AND运算符。

        2
  •  5
  •   Pointy    14 年前

    && 操作员返回 0 对于表达式 1 && 0 因为它的语义不同于其他类C语言中同一操作符的语义(好吧,符号相同)。

    在Javascript中 && 将其操作数强制为布尔值,但 为了评估的目的。形式表达式的结果

    e1 && e2 && e3 ...
    

    实际的 第一个子表达式的值 en false . 如果他们都是 true 实际的 最后一个的值 . 同样地 ||

    e1 || e2 || e3 ...
    

    通过返回 第一个的值 是的 . 如果它们都是假的,那么值就是 实际的 最后一个的值。

    && 一旦满足子表达式的完成条件,就停止对其求值。

        3
  •  2
  •   Jonathon Faust    14 年前

    1和;0是0。

    它是位运算符,不是逻辑运算符。

    &&表示左右运算符的逻辑“与”。这意味着只有当左操作符和右操作符都解析为布尔真时,它才会返回布尔真值。

    &表示左右运算符的位“与”。这意味着将比较每个操作数的位,结果将是and值,而不是布尔值。如果你这样做了 101 & 100 100 . 如果你这样做了 1 & 0 ,返回值为 0

    如果有人告诉你这两个运算符的区别仅仅是效率上的差异,那么你就被误导了。它们有非常不同的用途。

        4
  •  2
  •   Neil    14 年前

    你的朋友错了。

    1和;0返回0

    真实(&A)&false返回false

        5
  •  1
  •   sblom    14 年前

    对。Javascript两者兼有。 http://www.eecs.umich.edu/~bartlett/jsops.html

    与C#中的情况完全一样,双&一旦遇到错误,版本就可以停止,并且;版本可能不是。

        6
  •  1
  •   Haryono    4 年前

    https://www.w3schools.com/js/js_bitwise.asp

    &如果两个位都是1,则is将每个位设置为1

    5&1 = 1

        7
  •  0
  •   dave    14 年前

    &&是Javascript中的逻辑运算符。1和&0应返回false,以便它正确执行。

        8
  •  0
  •   user372743 user372743    14 年前

    Javascript具有按位(&)和布尔值(&P)&)操作员。原因&返回1上的0(&a)&0是因为0表示false,而so 1(true)&&0(false)返回false,因为两个运算符的计算结果都必须为true才能返回true