JavaScript 对字符串进行 switch 操作
Anika Tabassum Era
2024年2月15日
switch-case
语句与 conditional
语句相同。这两个函数之间的区别仅在于语法。
switch
语句计算表达式及其类型,然后将其与声明性 case
子句匹配。匹配是通过 ===
严格相等操作来操作的。
triple equal ===
只会推断出在类型和案例中是可靠的匹配。这只会产生布尔值,因此我们的子句要么匹配 switch 表达式,要么跟随 default
部分。
用 switch
字符串满足 case
子句
我们将使用 string
启动一个变量,并将此表达式传递给此示例的 switch
语句。接下来,switch
语句将比较 case
子句和它拥有的表达式。
如果匹配返回 true
,则该特定代码块的代码行将运行。
代码片段:
var str = 'butter';
switch (str) {
case 'butter':
console.log('Buttery delicious!');
break;
case 'chocolate':
console.log('Ain\'t chocolate everyones fav!');
break;
default:
console.log('What\'s wrong with your tastebud?');
}
输出:
通过 switch
中的类型转换字符串表达式满足 case
子句
我们将创建一个带有数字
的变量,但是当我们将它作为 switch
语句的表达式传递时,我们将执行类型转换
。
如果 switch
语句表达式和 case
子句的显式条件是相同的数据类型,则它不会适用于 default
情况。
如果你不知道表达式的类型,请尝试将其转换为 string
或针对特定情况的任何其他首选类型。通常在开发中,你可能会遇到 this
对象实例,当你跟随 switch(this)
时,你可能会遇到错误。
即使它是一个实例,它也不同于字符串原语。因此,你必须以这种方式明确定义它:switch(String(this))
。
代码片段:
var val = 42;
switch (String(val)) {
case 1:
case 2:
case 3:
case 42:
console.log('It\'s a digit');
break;
default:
console.log('OOPS! This is string');
}
输出: