【學習筆記--前端--js】var and let

var VS let:

a. var聲明的變量是全局範圍內有效的;

  let聲明的變量只在當前代碼塊內有效。

eg 1:

{

var  a = 1;

let  b = 2;

}

console.log(a);  //a=1

console.log(b);  //b is not defined.

 

b. var聲明的變量,即使在不同地方有重複的聲明,在全局範圍內也始終只存在一個副本

  let聲明的變量只在當前的代碼塊內有效,當再次進入代碼塊時,let變量已經是一個新的副本,不會覆蓋到上次進入代碼塊時的let變量。

eg2:

var arr=[];

for(let i=0; i<10; ++i){

    arr[i]=function(){

        console.log(i);  //可以理解爲此時的i是cpp中的按值傳遞的。

    }

}

arr[5]();  //5

 

var arr=[];

for(var i=0; i<10; ++i){

    arr[i]=function(){

        console.log(i);  //可以理解爲此時的i是cpp中的引用傳遞的。

    }

}

arr[5]();  //10

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章