let 和 const 變量
- 頁面var的變量,至關於在頁面定義一個全局變量,在內存指向同一個內存地址。
- 頁面let的變量,僅在代碼塊做用域內有效。
var arr=[];
for(var i=0;i<5;i++){
arr[i] =function(){
console.log(i);
}
}
arr[2](); //5
複製代碼
var arr=[];
for(let i=0;i<5;i++){
arr[i]=function(){
console.log(i);
}
}
arr[2](); //2
複製代碼
- 頁面const的變量,一旦聲明,就不能改變(再次賦值,會報TypeError: Assignment to constant variable.)
- global 對象(引入global做爲頂層對象,統一頂層對象)
1.瀏覽器裏面,頂層對象是window或者self
2. Web Worker,頂層對象是self
3.Node 裏面,頂層對象是global
===============================================###
專用名詞
變量提高(用var聲明變量,存在變量提高,先輸出,後定義,會輸出undefined;而對於let聲明變量,則不存在變量聲明,既先輸出,後定義,會報ReferenceError)
暫時性死區(在代碼塊內,不可在聲明以前就使用let聲明變量。)
不可重複聲明(let不容許在相同做用域內,重複聲明同一個變量)
塊級做用域