下面这段代码在执行的时候, 打印的结果是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; }