var a=1;
b=++a*a;
console.log(b);
console.log(a);
結果是4,2如何讓程序得到這個結果? 在我看來,結果將是2,2javascript的前綴操作會如何導致這樣的結果?
任何人都可以告訴我javascript編譯器如何編譯這段代碼並得到結果4,2。
那麼深層次的問題就是爲什麼這兩段代碼的結果是相同的。
var a=2;
var b=3;
c=(a++)*a;
console.log(c);
var a=2;
var b=3;
c=(a++)*b;
console.log(c);
任何人都可以解釋這一步一步一步?
爲什麼會得到C編程language.Like錯誤此INT A = 1; B = ++ A * A;的console.log(b)中;的console.log(a)的c和javascript之間有什麼區別,爲什麼c會得到錯誤。 – JackieWillen
Javascript和C之間的區別(除了明顯的語法差異之外)是Javascript總是從右到左評估而C不是; C可以以任何順序或甚至並行評估「*」的參數。因此,您不允許在同一表達式中修改和使用變量。請參閱https://stackoverflow.com/questions/949433/why-are-these-constructs-using-undefined-behavior – rici