【问题标题】:What is the order precedence of a = b == c in JavaScript?JavaScript中a = b == c的顺序优先级是什么?
【发布时间】:2010-06-21 15:54:13
【问题描述】:
var clicked = $(event.currentTarget || target);
var clickedIsActive = clicked[0] == this.active[0];

我对 js 很陌生,在尝试阅读一些 jQuery 代码时,我遇到了上面的部分。

第二行的优先级是多少?

是吗:

var clickedIsActive = (clicked[0] == this.active[0]);

还是别的什么?

谢谢。

【问题讨论】:

  • 唯一比赋值具有更高优先级的运算符是逗号运算符,例如foo = 0,1; 被解释为(foo = 0),(1);

标签: javascript equals operator-precedence


【解决方案1】:

是的,首先评估作业的最右边。

clickedIsActive 被赋值为表达式clicked[0] == this.active[0] 的结果。

【讨论】:

    【解决方案2】:
    var clickedIsActive = clicked[0] == this.active[0];
    

    clickedIsActive 是比较 clicked[0] == this.active[0] 的结果,因此必须先比较 clicked[0] == this.active[0]

    【讨论】:

      【解决方案3】:

      我认为您可能会将=== 混淆。它们不是一回事,所以这很像比较苹果和橙子。

      = 是一个分配。 == 是一个“相等”比较,只会返回 truefalse

      无论是否误解,您的转码都是正确的。赋值的右侧在实际赋值之前被解析。 Javascript VM 需要知道它在分配什么,然后才能保存它。

      【讨论】:

        猜你喜欢
        • 2016-07-05
        • 2015-01-04
        • 1970-01-01
        • 2015-07-19
        • 1970-01-01
        • 2015-11-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多