JavaScript的switch语句
在二级页面修改了后台数据之后,需要把前端数据也进行一次更新
这个时候遇到了错误,switch语句在不修改前是没问题的,修改后switch语句仿佛是被跳过了
let typeName:any;
switch (items[0].adjType) {
case 1:
typeName="从父目录继承附注调整";
break;
case 2:
typeName="纯定额附注调整";
break;
}
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
一开始以为是switch语句没有执行完成就去执行了后续的语句,最终不是
let typeName:any;
console.log("1. 开始执行switch"); // 顺序标记1
switch (items[0].adjType) {
case 1:
typeName="从父目录继承附注调整";
console.log("2. switch分支1执行完毕"); // 顺序标记2
break;
case 2:
typeName="纯定额附注调整";
console.log("2. switch分支2执行完毕"); // 顺序标记2
break;
default :
console.log("2.标记"+items[0].adjType)
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
加了顺序标记后,发现标记2 没有实现,再增加了一个default后标记被执行
输出的是2,但为什么没有进入case语句呢
使用类型检查后
typeof items[0].adjType
1
发现了原因是items[0].adjType经过修改后返回的是string类型
JavaScript 的
switch
语句使用严格相等(===) 进行判断,即值和类型必须完全一致。
使用Number对象进行包装即可
items[0].adjType = Number(items[0].adjType);
1
更新时间: 2025/8/10 23:19:43