# 第三十七關:let、const
情境:
這幾天小杰都在埋頭於 JS 書籍裡,因為禿頭俠說,目前除了 var 以外,還可以用 let 與 const 來宣告變數,但他壓根不了解這兩個語法的目的。還請大家幫幫小杰尋找技術文章,幫助它吸收吧!
# 問題
還請挑戰者們分享你找到的 JS ES6 let 與 const 文章,補充在下方列表,並嘗試自己寫一些範例,並回報於 Slack 上
# let、const 教學文章
- ES6 開始的新生活 let, const
- ECMAScript6 入門:var、let、const 差異
- JS 筆記 - 認識 ES6
- JS 筆記 - ES6 let 與 const 特性
- JS 筆記 - ES6 的 let 與 for 用法
- 鐵人賽:ES6 開始的新生活 let, const
- Day 05: ES6篇 - let與const
- JavaScript: var, let, const 差異
- JavaScript ES6 Block Scope - let, const
- Day26 var 與 ES6 let const 差異
- ES6 更嚴謹安全的 let 和 const
參考解答
//一、作用域 if, else, for, while等等區塊語句中,var宣告的變數仍然可被存取
//var
function fn1() {
var a = 10;
}
if (true) {
var b = 20;
}
console.log(a); // a is not defined
console.log(b); // 20
//let、const
function fn2() {
let a = 10;
}
if (true) {
const b = 20;
}
console.log(a); // a is not defined
console.log(b); // b is not defined
//二、const vs let
//const針對是常數的定義,不可再指定
const a = 10;
a = 20; //Assignment to constant variable.
let a = 10;
a = 20;
console.log(a); //20
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34