函数内部声明变量声明提到顶部
var name = "Kevin"; function callName() { alert(name); var name = "marry"; } callName(); // undefined
Javascript在进入一个函数域时,先扫描声明,注意,仅仅是声明,并没有执行赋值,每个变量的初始值都是undefined。
所以上式也可以相当于下面这种写法
var name = "Kevin"; function callName() { var name; alert(name); name= "marry"; } callName(); // undefined