js中变量提升
var name = 'tom'
function change() {
alert(name) // undefined
var name = 'lily'
alert(name) //lily
}
change()
相当于
var name = 'tom'
function change() {
var name // 变量提升
alert(name) // undefined
name = 'lily'
alert(name) //lily
}
change()
如果看到这里还不明白变量提升,可以试一下下面的代码
var name = 'tom'
function change() {
alert(name) // tom 向上查找作用域中是否声明
name = 'lily' //当没有使用 var 声明时,定义的是全局变量
alert(name) //lily
}
change()
alert(name) //lily