es5 只有全域性作用域和函式作用域,沒有塊級作用域,這帶來很多不合理的場景。
es6中增加了塊級作用域的概念,
var 可以重複申明,無法限制修改,沒有塊級作用域
let 不能重複申明,變數-可以修改,塊級作用域,只在當前作用域有效
const 不能重複申明,常量-不可修改,塊級作用域,只在當前作用域有效
console.
log(a)
;// 塊級作用域外可以訪問
console.
log(b)
;// 塊級作用域外不可以訪問
console.
log(c)
;// 塊級作用域外不可以訪問
for
(var i =
0; i <
3; i++),
0);}
for(
let i =
0; i <
3; i++),
0);}
js關於變數宣告 var let const 區別
關於定義 宣告 變數 es6之前定義變數是用 var 那麼var有什麼問題嗎,如果但但從變數上來說是沒有問題的,var是variable的縮寫,英文翻譯是變數。var問題 1.汙染全域性 之前定義迴圈的方式 for var i 0 i 10 i alert i 有一天突然運營檔案,這個時候彈出的是 ...
面試官 說說var let const之間的區別
故心故心故心故心小故衝啊 在es5中,頂層物件的屬性和全域性變數是等價的,用var宣告的變數既是全域性變數,也是頂層變數 注意 頂層物件,在瀏覽器環境指的是window物件,在 node 指的是global物件 var a 10 console.log window.a 10 使用var宣告的變數存...
面試 var let const的區別
var只有全域性作用域和函式作用域概念,沒有塊級作用域的概念。但是會把 內也假稱為塊作用域。let只有塊級作用域的概念 由 包括起來,if語句和for語句裡面的也屬於塊級作用域。如圖 var 存在變數提公升,而 let,const 後面會提及 宣告的變數卻不存在變數提公升,所以用 let 定義的變數...