JS中switch的四种写法示例
下面我将详细讲解JS中switch的四种写法示例。
简述
switch是一个条件语句,用于测试变量是否等于多个值中的某一个值。在JS中,switch有四种使用方式,分别是:
- 没有 break 关键字;
- 有 break 关键字;
- 每个 case 都使用 return;
- 使用对象的方法进行判断。
没有 break 关键字
示例代码如下:
var myAnswer = 'c';switch (myAnswer) { case 'a': console.log('你选择了 a'); case 'b': console.log('你选择了 b'); case 'c': console.log('你选择了 c'); default: console.log('你没有选择任何选项');}在这种情况下,如果变量myAnswer等于c,那么输出结果会是:你选择了 c, 你没有选择任何选项,原因是此时没有break语句来终止switch语句,因此在第一个case匹配成功后,程序会继续执行下一个case的代码,直到default语句结束。
有 break 关键字
示例代码如下:
var myAnswer = 'c';switch (myAnswer) { case 'a': console.log('你选择了 a'); break; case 'b': console.log('你选择了 b'); break; default: console.log('你没有选择任何选项');}在这种情况下,如果变量myAnswer等于c,那么输出结果会是:你没有选择任何选项,原因是使用了break语句后,匹配成功的case代码块会执行完毕后直接跳出switch语句。
每个 case 都使用 return
示例代码如下:
function getAnswerLetter(answer) { switch (answer) { case 'a': return 'A'; case 'b': return 'B'; case 'c': return 'C'; default: return '未知选项'; }}console.log(getAnswerLetter('a')); // 输出结果:Aconsole.log(getAnswerLetter('d')); // 输出结果:未知选项在这种情况下,如果匹配成功,将不会继续执行其他case或default语句,而是直接返回匹配成功的列的值。
使用对象的方法进行判断
示例代码如下:
var myAnswer = 'c';var AnswerSelector = { a: function () { console.log('你选择了 a'); }, b: function () { console.log('你选择了 b'); }, c: function () { console.log('你选择了 c'); }, default: function () { console.log('你没有选择任何选项'); },};(AnswerSelector[myAnswer] || AnswerSelector.default)();在这种情况下,会定义一个对象AnswerSelector,该对象维护了每个选项的方法。在调用过程中使用了函数的自执行,而且是根据变量myAnswer在AnswerSelector对象中查找相应的方法。