2016-05-26 103 views
0

我有一段我在標籤中寫的代碼。x的價值是什麼?

<script> 
var y = 1, 
x = y = typeof x; 
alert(x); 
</script> 

這將提醒x爲「未定義」。

請解釋一下Javascript編譯器如何評估它。

在此先感謝。

+1

評估發生從右到左。因此,首先'typeof(x)'計算並返回'undefined'到'y',然後將其賦值給'x' –

+0

'var x,y; y = 1; y = typeof x; x = y; alert(x);' – Rayon

+0

感謝您的評論 –

回答

3

從右到左。在定義之前,x的類型是不確定的,這並不奇怪。

如果你在你的警報X,這將是不確定的爲好,因爲你已經把它的類型的X

0

由於x尚未確定它會返回「未定義」在同一個地方的警報ÿ ,然後將其分配給y,然後將值y(現在未定義)分配給x