好像有點邊緣的 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
,但記得別忘了加 break
跟 default
這兩個東西。(忘了加 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
來取出,就像建立代號的概念:
陣列的 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])
|