2010-06-21 176 views
2
var clicked = $(event.currentTarget || target); 
var clickedIsActive = clicked[0] == this.active[0]; 

我对js相当陌生,在尝试阅读一些jQuery代码时,我遇到了上述部分。JavaScript中a = b == c的顺序优先顺序是什么?

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

它是:

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

或者是别的什么?

谢谢。

+2

你可以试试它。 – 2010-06-21 16:08:03

+0

优先级高于赋值的唯一运算符是逗号运算符,例如, 'foo = 0,1;'被解释为'(foo = 0),(1);' – CMS 2010-06-21 16:24:54

回答

6

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

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]将必须被首先比较的结果。

0

我想你可能会混淆===。它们不是一回事,所以这就像将苹果和橘子进行比较一样。

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

误解与否,您的转码是正确的。分配的右侧在实际分配之前进行分析。 Javascript VM需要知道它是如何分配的,就像之前它可以保存它一样。