JS 变量提升

JS 中,函数和变量的声明会被提升到作用域的最顶部,但是初始化不会提升。

实例一,变量提升 :

x=100;
document.getElementById("p").innerHTML=x;
var x;

等于

var x;
x=100;
document.getElementById("p").innerHTML=x;

实例二,变量提升,但是初始化不会提升,实例中会是undefined :

document.getElementById("p").innerHTML=x; // undefined
var x=100;

等于

var x;
document.getElementById("p").innerHTML=x; // undefined
x=100;

实例三,函数提升,函数内部的变量也一样遵循变量提升 :

abc();
function abc(){
	x=100;
	document.getElementById("p").innerHTML=x;
	var x;
}

等于

function abc(){
	var x;
	x=100;
	document.getElementById("p").innerHTML=x;
}
abc();

请在作用域的最顶部声明变量

不理解变量提升,程序中容易产生bug(错误)。
为了避免产生 bug,请始终在每个作用域的最顶部声明变量,请保持这个好习惯。