switch case

好像有點邊緣的 switch。

如果沒有 switch

1
2
3
4
5
6
7
8
9
10
11
var month = 1

if (month === 1) {
console.log('一月')
} else if (month === 2) {
console.log('二月')
} else if (month === 3) {
console.log('三月')
} else if (month === 4) {
console.log('四月')
}

記得之前看書是說用 if 的效能比較不好,因為 month = 4 的話,在執行到 console.log('四月') 之前的每一個 if 都要走過一遍。

有了 switch

條件很多的時候就是適合用 switch,但記得別忘了加 breakdefault 這兩個東西。(忘了加 break 的話每一行都會被執行到)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
switch (month) {
case 1:
console.log('一月')
break
case 2:
console.log('二月')
break
case 3:
console.log('三月')
break
case 4:
console.log('四月')
break
default:
console.log('hello')
}

後來學到也可以「多個 case」指向同個區塊:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
switch (month) {
case 1:
case 2:
console.log('一月或二月')
break
case 3:
console.log('三月')
break
case 4:
console.log('四月')
break
case 5:
console.log('五月')
break
default:
console.log('hello')
}

其實也有更好的做法(Mapping 映射)

簡單介紹一下 Mapping 的操作。

Mapping 的概念就是你建立一個「陣列」或「物件」,把 value 設定成你要的值,接著用 key 來取出,就像建立代號的概念:

  • A 代表 小明
  • B 代表 小花

陣列的 mapping

1
2
3
var month = 1
chineseMonth = ['一月', '二月', '三月', '四月', '五月']
console.log(chineseMonth[month -1]) // 五月

物件的 mapping

1
2
3
4
5
6
7
8
var code = 'A'
people = {
A: '小明',
B: '小花',
C: '小朱',
D: '小飛'
}
console.log(people[code]) // 小明
三元運算子 if 的演化史
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×