1. 程式人生 > >js變量提升

js變量提升

con def define func 需要 容易 必須 let 執行

js預解析 需要註意的 JS會先檢查遍歷的時候先聲明不賦值,這裏有2點需要註意
* 1,函數聲明優先於變量聲明,
* 2,變量聲明同級,安先後順序執行
代碼如下

alert()
a()
var a = 3;
function a(){
alert(10)
};
a=3;
alert(a);
a=6;
a()

解析如下

var a;
a=function (){alert(10)}
alert(a)
a();
a=3;
alert(a)
a=6
a()

就很容易得到結果 function(){alert(10)},10,3,a is not function


這裏就要見到ES6,let const ,這2個關鍵字都是創建一個塊級變量,且不會被提升,需要註意的的是必須要先聲明。
上面的代碼用ES6就變的簡單很多

alert(a)
let a = 3

結果會報錯,a is not defined

js變量提升