Switch语句在JavaScript中无法正常工作

Switch语句在JavaScript中无法正常工作,javascript,switch-statement,Javascript,Switch Statement,我有下面的代码。出于某种原因,我不想执行的case语句(第二个用于案例“2”)正在执行正确的语句(案例“4”)。在线阅读后,似乎大多数ppl都能通过添加“中断”声明来解决类似问题。然而,这对我不起作用。请告知。以下输出来自我的浏览器 var chk='4' 开关(chk){ 案例“4”: 变量位置=[ [“936001鲟鱼湾”,44.8358,-87.3305,“LRA”,1], [“936087_SHADOW_LAKE”,45.2183,-88.5981,“上帝抵抗军”,2], [“9361

我有下面的代码。出于某种原因,我不想执行的case语句(第二个用于案例“2”)正在执行正确的语句(案例“4”)。在线阅读后,似乎大多数ppl都能通过添加“中断”声明来解决类似问题。然而,这对我不起作用。请告知。以下输出来自我的浏览器

var chk='4'
开关(chk){
案例“4”:
变量位置=[
[“936001鲟鱼湾”,44.8358,-87.3305,“LRA”,1],
[“936087_SHADOW_LAKE”,45.2183,-88.5981,“上帝抵抗军”,2],
[“936136_猪”,44.5925,-88.0808,“OMS”,3],
[“936136_猪”,44.5925,-88.0808,“OMS”,4]
];
var map=new google.maps.map(document.getElementById('map'){
缩放:15,
中心:新的google.maps.LatLng(位置[0][1],位置[0][2]),
mapTypeId:google.maps.mapTypeId.ROADMAP
});
var infowindow=new google.maps.infowindow({
最大宽度:400000
});
变量位置\所有\单元1=位置;
var标记,i;
对于(i=0;i来自:

switch语句首先计算其表达式。然后,它查找第一个case子句,该子句的表达式的计算结果与输入表达式的结果的值相同(使用严格比较,==),并将控制转移到该子句,执行相关语句

开关执行严格的检查,与
'4'
(字符串)和
4
(数字)不匹配。因此,您需要更改代码,如:

var chk = '4';

更新

如果您的浏览器确实正确加载了它,比如
chk='4'
,那么它应该可以工作。请看这里:

var chk='4';
//添加此项以供检查。
变量类型1='OMS';
开关(chk){
案例“4”:
开关(类型1){
案例“OMS”:
text=“4-OMS”;
打破
“上帝抵抗军”案:
text=“4-LRA”;
打破
案例“UPSAVE”:
text=“4-向上保存”;
}
打破
案例“2”:
//######在这里做些事情##
打破
违约:
text=“期待周末”;
}

console.log(文本) 例如,在下面的代码中,如果b为空/null,即使m为“false”,程序也会在n和m情况下出错:


您尚未定义
类型1
!我肯定,这不会发生在案例2中。。。或者,如果它真的去了,则使
chk='4'作为字符串。在上面的代码中,只有默认分支将被执行(案例“2”和案例“4”都不会执行),因为您的案例都不匹配
4
。请注意,
4!='4'
@Paulpro
开关是否执行严格检查?@PraveenKumar是的,看看我五年前在StackOverflow上问的第四个问题haha@Paulpro天哪,你真是个名人@ssharma如果你的浏览器的代码确实是
chk='4'
,那么它肯定能正常工作。你能发正确的密码吗?所以我真的明白了
switch(expression) {
case n:
    break;
case m:
    Var a=b;
    break;
default:
    default code block
}