【问题标题】:What does this piece of code do? a = (a == b) ? c: b; [duplicate]这段代码有什么作用? a = (a == b) ?丙:乙; [复制]
【发布时间】:2013-06-25 06:38:39
【问题描述】:
a = (a == b) ? c: b;

我不明白。所有的{a, b, c}都是程序员设置的具有一定值的变量。

【问题讨论】:

  • 如果 a 等于 b 则将 c 分配给 a 否则 b.
  • 在其他语言中也有相同的运算符,但要记住 javascript 的一件事,即三元运算符的条件部分(本例中的 (a == b))是“真实的”,而不仅仅是简单的布尔值。所以99 ? "a" : "b" 将返回“a”,0 ? "a" : "b" 将返回“b”。这可以让您在 javascript 中使用此运算符做一些很酷的事情(就像使用 || 运算符一样)。
  • 如果 a 等于 be 则 a 等于 c ,否则 a 等于 b 。

标签: javascript


【解决方案1】:

那叫ternary operator: 和做的一样:

if(a == b)
 a = c;
else
 a = b;

【讨论】:

    【解决方案2】:

    如果a 等于ba = c 否则a = b

    【讨论】:

      【解决方案3】:

      这是 if 和 assignment 的简写形式。

      q = x ? y : z

      q 是您分配给的变量 x 是一个布尔表达式,为真或假。 如果是真的 y 将被分配给你的变量 q 否则 z 将分配给 q。

      【讨论】:

        【解决方案4】:

        这是ternary operator,相当于:

        if (a == b) {
          a = c;
        } else {
          a = b;
        }
        

        主要区别在于if/else由条件语句组成,而三元运算符是条件表达式。换句话说,三元运算符就像 if/else 返回一个值一样工作。在其他一些语言中,if/else 也是表达式,因此以下是有效的,并且实际上等同于 ?:

        a = (if (a == b) { c; } else { b; }) // not valid javascript
        

        一定要查看https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Conditional_Operator

        Mozilla 开发者网络是 JavaScript 的绝佳参考。

        【讨论】:

          【解决方案5】:

          如果 a 等于 b 则将 c 分配给 a ,否则将 b 分配给 a

          【讨论】:

            【解决方案6】:

            英文-

            If a is equal to b, then a = c. otherwise, a = b
            

            【讨论】:

              【解决方案7】:

              ?: 语法是ternary operator。本质上,这意味着如果a 等于b,则a 等于c,否则a 等于b

              【讨论】:

                猜你喜欢
                • 2013-06-25
                • 2019-10-27
                • 2020-08-09
                • 1970-01-01
                • 1970-01-01
                • 2021-10-06
                • 2021-08-14
                • 1970-01-01
                相关资源
                最近更新 更多