var a=0;b=(a=3) (a=4);alert(a);alert(b);結果a=4,b= 7
想問一下,a為什麼是4?賦值運算是從右向左的嗎?
運算順序:
var a = 0; // a 0 b = (a = 3) + (a = 4); // a = 3 ----> a为3,整个赋值语句返回3 // a = 4 ----> a为4,整个赋值语句返回4 // 由于返回值的内存和赋值操作用到的a的内存不同,所以b的运算所用的值,只和返回值有关,不受a的值变化的影响,因此,b = 3 + 4 = 7 // 所以,最终a为4,b为7
賦值運算是自右向左結合的。所以首先是將(a=3)+(a=4)賦值給b。然而(a=3)+(a=4)是從左到右的順序執行的。所以顯示3賦值給a,然後4賦值給a。所以a最終為4,b最終為7。
先執行a=3,接著執行a=4, 所以最後a是4
a被4賦值了
b=(a=3)+(a=4)這行程式碼時從左向右執行的執行a=3時,此時將3賦值給a 當a=4時,將4賦值給a,最後a的值就是4了.
運算順序:
賦值運算是自右向左結合的。所以首先是將(a=3)+(a=4)賦值給b。然而(a=3)+(a=4)是從左到右的順序執行的。所以顯示3賦值給a,然後4賦值給a。所以a最終為4,b最終為7。
先執行a=3,接著執行a=4, 所以最後a是4
a被4賦值了
b=(a=3)+(a=4)這行程式碼時從左向右執行的
執行a=3時,此時將3賦值給a 當a=4時,將4賦值給a,最後a的值就是4了.