關於JS中switch和if進行多路判斷的一些討論

samael發表於2016-06-23

昨天給一個學生改js作業是發現一個很有意思的細節, 就是關於多路判斷是用switch還是if, 這裡把相關的調查總結一下.

MDN中文版裡:

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Statements/switch

把這個方法定義成了一個 "hacky"

但是在MDN英文版裡:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/switch

關於這個的hacky的描述被刪除了

估計這應該是一個爭議的用法,不支援不反對, 所以就沒寫了

有趣的是日本人關於這個用法也做了一個調查:

http://qiita.com/t_uda/items/1969e09a970d71e4cfd6

裡面有些觀點也挺有意思的,拿翻譯工具翻譯了一下, 基本的兩個觀點就是 是, 表意優先 還是, 便利優先

關於這個的英文討論也有, 不過有些短

http://codereview.stackexchange.com/questions/37424/switch-true-as-alternative-to-else-if

還有一個關於switch "有害"的觀點:

http://ericleads.com/2012/12/switch-case-considered-harmful/

相關測試:

http://jsperf.com/if-else-chain-vs-switch-true

原文地址:

http://samael65535.github.io/javascript/2016/06/19/javascript-switch-vs-js/

相關文章