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

返回一个操作数的布尔运算符

  •  2
  • Sjoerd  · 技术社区  · 14 年前

    在python中,或者在javascript中,布尔值 or and 运算符返回一个操作数,而不是 true false .

    • 在python中,返回一个操作数: '' || 'hello' == 'hello'
    • 相比之下,在php中: '' || 'hello' == true ;

    现在,

    • 如何调用布尔运算符的这种行为?
    • 这在所有浏览器的javascript中都有效吗?
    2 回复  |  直到 14 年前
        1
  •  2
  •   Community George Stocker    7 年前

    AS Ignacio's answer 指出,这些是 聚结 运算符。 || null coalescing operator , && 是空安全合并运算符( 如果我能找到的话,链接到下面 抱歉,我找不到链接)。

    它们应该在所有浏览器中都可用——它们都在ECMA-262第1、第2、第3和第5版中定义,大多数当前的JavaScript实现都基于第3或第5版。来自ECMA-262第3版:

    生产逻辑表达式:逻辑表达式和位表达式被评估为 跟随:
    1。评估LogicalAndExpression。
    2。调用GetValue(结果(1))。
    三。调用toboolean(结果(2))。
    4。如果结果(3)为假,则返回结果(2)。
    5。评估位表达式。
    6。调用GetValue(结果(5))。
    7。返回结果(6)。

    生产逻辑表达式:逻辑表达式逻辑表达式评估为 跟随:
    1。评估LogicalorExpression。
    2。调用GetValue(结果(1))。
    三。调用toboolean(结果(2))。
    4。如果结果(3)为真,则返回结果(2)。
    5。评估LogicalAndExpression。
    6。调用GetValue(结果(5))。
    7。返回结果(6)。

        2
  •  1
  •   Ignacio Vazquez-Abrams    14 年前

    这叫做“联合”。它在任何声称兼容的浏览器中的行为都应该相同。