JavaScript中switch的四种写法示例

JavaScript中switch的四种写法示例

JavaScript中的switch语句用于对某个变量进行多分支判断,根据变量的值执行相应的代码块。本文将介绍JavaScript中switch语句的四种不同写法,包括常规写法、函数式写法、对象字面量写法和Map写法。

1. 常规写法

switch语句的常规写法如下:

switch(expression) {

case value1:

statement1;

break;

case value2:

statement2;

break;

...

default:

statement;

}

其中,expression是要进行判断的表达式,value1、value2等则是表达式可能的返回值,对应的statement1、statement2等则是相应的代码块。default是可选的,代表当expression没有匹配到任何一个case时执行的代码块。

下面是一个常规写法的示例:

const fruit = 'apple';

switch (fruit) {

case 'banana':

console.log('This is a banana.');

break;

case 'orange':

console.log('This is an orange.');

break;

case 'apple':

console.log('This is an apple.');

break;

default:

console.log('This is not a fruit.');

}

// Output: This is an apple.

上面的代码中,fruit变量的值是'apple',因此对应的case 'apple'代码块被执行,输出'This is an apple.'。

2. 函数式写法

函数式写法是将每个case语句的代码块封装成函数,然后在switch语句中调用相应的函数。这样可以使代码更加简洁和易于维护。

下面是一个函数式写法的示例:

const fruit = 'apple';

function banana() {

console.log('This is a banana.');

}

function orange() {

console.log('This is an orange.');

}

function apple() {

console.log('This is an apple.');

}

switch (fruit) {

case 'banana':

banana();

break;

case 'orange':

orange();

break;

case 'apple':

apple();

break;

default:

console.log('This is not a fruit.');

}

// Output: This is an apple.

上面的代码中,三个函数banana()、orange()和apple()分别对应switch语句中的三个case语句。fruit变量的值是'apple',因此对应的apple()函数被执行,输出'This is an apple.'。

3. 对象字面量写法

对象字面量写法是将case语句的代码块封装成一个对象,然后在switch语句中调用相应的属性。这种写法不仅简洁易读,还可以使代码更加灵活,因为可以动态修改对象的属性,而不需要改变switch语句本身。

下面是一个对象字面量写法的示例:

const fruit = 'apple';

const fruits = {

banana: () => console.log('This is a banana.'),

orange: () => console.log('This is an orange.'),

apple: () => console.log('This is an apple.'),

default: () => console.log('This is not a fruit.')

}

if (fruits[fruit]) {

fruits[fruit]();

} else {

fruits.default();

}

// Output: This is an apple.

上面的代码中,fruits对象定义了四个属性,对应着switch语句中的四个case语句。如果fruit变量值对应着fruits对象中的一个属性,则调用相应的函数;否则,调用default属性对应的函数。fruit变量的值是'apple',因此对应的apple()函数被执行,输出'This is an apple.'。

4. Map写法

Map写法是将case语句的代码块封装成一个Map对象,然后在switch语句中调用相应的函数。与对象字面量写法类似,这种写法可以使代码更加简洁和灵活。

下面是一个Map写法的示例:

const fruit = 'apple';

const fruits = new Map([

['banana', () => console.log('This is a banana.')],

['orange', () => console.log('This is an orange.')],

['apple', () => console.log('This is an apple.')]

])

if (fruits.has(fruit)) {

fruits.get(fruit)();

} else {

console.log('This is not a fruit.');

}

// Output: This is an apple.

上面的代码中,fruits对象是一个Map对象,它的键值对分别对应着switch语句中的三个case语句。如果fruit变量值对应着fruits对象中的一个键,调用相应的函数;否则,输出'This is not a fruit.'。fruit变量的值是'apple',因此对应的apple()函数被执行,输出'This is an apple.'。

总结

本文介绍了JavaScript中switch语句的四种不同写法,包括常规写法、函数式写法、对象字面量写法和Map写法。这些写法各有优缺点,开发者可以根据实际需求选择一种合适的写法。