0%

JS特訓-DAY38-let 與 const 觀念複習

前言

延續 let 與 const

上一關卡充分的看了許多關於 letconst 的文章,下面就來練習看看觀念是否正確吧!

問題一:下面會出現的 console 是?

console.log(a);
let a = 10;

console.log(a) 答案是 ReferenceError: Cannot access 'a' before initialization
let雖然有提升,但在宣告階段會出現「暫時性死區」(Temporal Dead Zone) ,這個區域無法呼叫變數,
因此不會出現 undefind 而是出現 錯誤題示。詳細可以看MDN

問題二:以下是否會正常執行?若不會,會顯示什麼紅字錯誤?

let a = 1;
a=3;

console.log(a) // 3

let b = 1;
let b = 2;

console.log(b) 出現 SyntaxError: Identifier 'b' has already been declared
let 在同一區塊內不允許重複宣告

const c = 3;
c=4

console.log(c) 出現 TypeError: Assignment to constant variable
const 是宣告常數,無法再重新賦予值

問題三:請問 var、let、const 的區別是? (此為熱門面試題目)

var、let、const 區別

參考文章