【问题标题】:What does this javascript code do? [duplicate]这个 javascript 代码有什么作用? [复制]
【发布时间】:2011-10-12 10:23:12
【问题描述】:
y = x?0:0x80

从谷歌搜索冒号似乎是一个三元运算符。

【问题讨论】:

    标签: javascript ternary-operator


    【解决方案1】:

    它是一个三元运算符。如果 x 为真,它将 0 分配给 y,否则分配 0x80。

    【讨论】:

      【解决方案2】:

      是的,它是一个ternary operation,如果xtrue0x80,则为y 分配0 的值。

      【讨论】:

        【解决方案3】:

        没错。 (正确的名称是 conditional operator。它是 a 三元运算符,因为它需要三个操作数,但它通常被误命名为 the 三元运算符,因为它是唯一的 JavaScript 运算符这样做。)

        代码大致相当于这样:

        var y;
        if (x) {
            y = 0;
        }
        else {
            y = 0x80;
        }
        

        【讨论】:

        • 三元运算符和条件运算符到底有什么区别?维基百科称其为 JavaScript 的三元运算:en.wikipedia.org/wiki/Ternary_operation
        • @pimvdb:名称“三元运算符”将适用于任何采用三个操作数的运算符。碰巧,唯一需要三个操作数的 JavaScript 运算符是条件运算符。
        【解决方案4】:

        翻译成:

        if(x) then
            y=0
        else
            y=0x80
        

        但要短得多。

        【讨论】:

        • +1 表示答案,-1 表示语法。
        • 我从未承诺过完美的语法。我想给出这个想法,因为我不希望任何人剪切和粘贴我的代码。
        【解决方案5】:

        以上都是肯定的,但它也在检查 x 的存在。如果 x 不存在或者是nully = 0x80

        【讨论】:

          猜你喜欢
          • 2017-06-25
          • 2015-06-27
          • 1970-01-01
          • 1970-01-01
          • 2011-05-09
          • 1970-01-01
          • 2013-04-17
          • 2010-12-15
          • 1970-01-01
          相关资源
          最近更新 更多