2010-06-21 177 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需要知道它是如何分配的,就像之前它可以保存它一樣。