下面這段代碼在執行的時候, 打印的結果是1, Error: undefined;
function fn() { var x = y = 1; }
fn(); console.log(y); // 1; console.log(x); // Error: undefined;
原因是這個函數在執行的時候, 是先執行的: y = 1; 因為這里的y在聲明賦值時沒有使用var, 因此會默認成為全局變量, 然后將一個全局變量的值賦值給一個局部變量x;
其實際的執行過程如下:
var y = 1; function fn() { var x = y; }