作用域分爲全局作用域和局部作用域,全局是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;