JavaScript的解析执行过程
f1(); console.log(c); console.log(b); console.log(a); function f1() { var a = b = c = 9; console.log(a); console.log(b); console.log(c); }
解析:
//js中会将函数和变量提升并预解析 //var a = b = c = 9; 相当于 var a = 9; b = 9 ; c = 9; 后两项是全局变量 //所以执行顺序变成以下 function f1(){ var a; a = 9; b = 9; c = 9; console.log(a); console.log(b); console.log(c); } f1(); // 9 9 9 console.log(c); //9 console.log(b); //9 console.log(a); /报错undefine,此时的a是函数内部的局部变量,而bc不同是全局变量