JavaScript中a = b == c的顺序优先级是什么?

时间:2010-06-21 15:54:14

标签: javascript equals operator-precedence

var clicked = $(event.currentTarget || target);
var clickedIsActive = clicked[0] == this.active[0];

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

第二行的优先顺序是什么?

是吗:

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

还是别的什么?

谢谢。

3 个答案:

答案 0 :(得分:6)

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

clickedIsActive分配了表达式clicked[0] == this.active[0]的结果。

答案 1 :(得分:2)

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

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

答案 2 :(得分:0)

我认为您可能会将===混淆。它们不是一回事,所以这非常类似于将苹果与橙子进行比较。

=是一项任务。 ==是一个“相等”的比较,只会返回truefalse

是否存在误解,您的转码是正确的。在实际分配之前解析赋值的右侧。 Javascript VM需要知道它之前分配的内容,因为它可以保存它。