作用域分为全局作用域和局部作用域,全局是window下,局部是函数内部,if for大括号内不是作用域。
js代码是先预解析,然后再执行
首先检查var function,var初始化为undefined,function是整个函数结构,遇到重名的会覆盖,但是function优先级比较高,同名的var和function,无论先后顺序,都将保留function
之后开始执行代码,赋值等
变量提升:
console.log(a); //undefined
var a = 10;
上述代码相当于:
var a;
console.log(a);
a = 10;