所以我遇到了这个问题,在过去的几个小时中,这一直困扰着我。
我有条件声明:
if (count == '0') {
var variable = '0%'
document.querySelector('.content').innerHTML = variable
}
else if (count == '1') {
var variable = '5%'
document.querySelector('.content').innerHTML = variable
}
else if (count == '2') {
var variable = '10%'
document.querySelector('.content').innerHTML = variable
}
,并且工作正常。唯一的问题是,我有20个值,所以我决定写一个if/else if
案例,而不是为20个值写相同的switch
:
switch (count) {
case '0':
var variable = '0 %'
document.querySelector('.content').innerHTML = variable
break;
case '1':
var variable = '5 %'
document.querySelector('.content').innerHTML = variable
break;
}
由于某种原因它不起作用,我真的不明白这是怎么回事。
TLDR:我的if/else if
工作正常,但我的switch
情况不理想,我不知道为什么不这样做。
答案 0 :(得分:7)
可能是类型转换问题。
使用“ if”方法时,您正在使用类型转换比较运算符(==),因此0 == '0'
会产生true
。
另一方面,Switch使用严格的比较运算符。
https://www.w3schools.com/js/js_switch.asp
严格比较
切换案例使用严格的比较(===)。
这些值必须具有相同的类型才能匹配。
仅当操作数具有相同类型时,严格比较才能成立。
答案 1 :(得分:-2)