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,请始终在每个作用域的最顶部声明变量,请保持这个好习惯。