前言: 全局作用域下声明的变量再其他作用域下也可以使用, 但函数作用域下声明的变量, 无法在全局作用域下使用.
var name1 = "Lilei"; function fn() { var name2 = "Hanmeimei"; console.log(name1); console.log(name2); } fn(); // "Lilei" // "Hanmeimei" console.log(name2); // Error: undefined;
注意: ES5 中没有块级作用域, 因此在全局作用域下的if 或 for 或 {} 中声明的变量都是全局变量, 如果if 或 for 或 {} 在函数作用域中, 则在其内部声明的变量可以在函数作用域中使用;