JavaScript 仅提升声明,而不提升初始化。如果你先使用的变量,再声明并初始化它,变量的值将是 undefined。以下两个示例演示了相同的行为。
var x = 1; // 声明 + 初始化 x
console.log(x + " " + y); //'1 undefined'
var y = 2; // 声明 + 初始化 y
//上面的代码和下面的代码是一样的
var x = 1; // 声明 + 初始化 x
var y; //声明 y
console.log(x + " " + y); //y 是未定义的
y = 2; // 初始化 y