javascript運算符優先級

var a = {n:1};  
a.x = a = {n:2};  
alert(a.x);// --> undefined  
alert(b.x);// --> {n:2}

about這道題答案挺多的,我理解這涉及兩個過程即求值過程和運算過程,求值過程都是從左到右,而運算過程有本身的運算順序javascript

a.x = a = {n:2}; 

這條語句中a.x a 和 {n:2}分別是三個表達式,須要先對他們求值,而後纔會進行賦值操做,求值過程是先於賦值過程的java

下表列出了 JavaScript 運算符,並按優先級順序從高到低排列。 具備相同優先級的運算符按從左至右的順序計算。
運算符
說明
.[ ] ( )        字段訪問、數組索引、函數調用和表達式分組
++ -- - ~ ! delete new typeof void      一元運算符、返回數據類型、對象建立、未定義的值
* / %   相乘、相除、求餘數
+ - +   相加、相減、字符串串聯
<< >> >>>   移位
< <= > >= instanceof    小於、小於或等於、大於、大於或等於、是否爲特定類的實例
== != === !==   相等、不相等、全等,不全等
&   按位「與」
^   按位「異或」
|   按位「或」
&&  邏輯「與」
||  邏輯「或」
?:  條件運算
= OP=   賦值、賦值運算(如 += 和 &=)
,   多個計算
相關文章
相關標籤/搜索