没有错误,但结果是 Undefined.javascript
No error, but the result is Undefined.javascript
代码中没有错误,但输出未定义
代码
var xx = document.getElementById("stars").value;
var day;
switch (xx) {
case 0:
day = "Sunday";
break;
case 1:
day = "Monday";
break;
case 2:
day = "Tuesday";
break;
case 3:
day = "Wednesday";
break;
case 4:
day = "Thursday";
break;
case 5:
day = "Friday";
break;
case 6:
day = "Saturday";
}
document.getElementById("demo").innerHTML = "Today is " + day;
<p id="demo"></p>
<input type='hidden' id="stars" value='4'>
我尝试了很多方法,但没有得到任何解决方案,请帮助我提前感谢
value
returns 一个字符串,case
表达式中的值是数字。一种解决方案是在那里也使用字符串文字:
var xx = document.getElementById("stars").value;
var day;
switch (xx) {
case '0':
day = "Sunday";
break;
case '1':
day = "Monday";
break;
case '2':
day = "Tuesday";
break;
case '3':
day = "Wednesday";
break;
case '4':
day = "Thursday";
break;
case '5':
day = "Friday";
break;
case '6':
day = "Saturday";
}
document.getElementById("demo").innerHTML = "Today is " + day;
<p id="demo"></p>
<input type='hidden' id="stars" value='4'>
Switch
语句使用 strict equality comparison (===)
将其表达式与每个 case
子句进行比较。
.value
属性 returns 一个字符串。因此 xx
的值是一个字符串,不匹配任何 case
子句,因为每个 case
子句中的值都是一个数字,并且两种不同类型的值之间的严格相等比较总是计算为错误的。因此,day
永远不会使用初始值 undefined
以外的值进行初始化
将每个 case
子句更改为数字即可解决问题
case "4":
day = "Thursday";
break;
代码中没有错误,但输出未定义
代码
var xx = document.getElementById("stars").value;
var day;
switch (xx) {
case 0:
day = "Sunday";
break;
case 1:
day = "Monday";
break;
case 2:
day = "Tuesday";
break;
case 3:
day = "Wednesday";
break;
case 4:
day = "Thursday";
break;
case 5:
day = "Friday";
break;
case 6:
day = "Saturday";
}
document.getElementById("demo").innerHTML = "Today is " + day;
<p id="demo"></p>
<input type='hidden' id="stars" value='4'>
我尝试了很多方法,但没有得到任何解决方案,请帮助我提前感谢
value
returns 一个字符串,case
表达式中的值是数字。一种解决方案是在那里也使用字符串文字:
var xx = document.getElementById("stars").value;
var day;
switch (xx) {
case '0':
day = "Sunday";
break;
case '1':
day = "Monday";
break;
case '2':
day = "Tuesday";
break;
case '3':
day = "Wednesday";
break;
case '4':
day = "Thursday";
break;
case '5':
day = "Friday";
break;
case '6':
day = "Saturday";
}
document.getElementById("demo").innerHTML = "Today is " + day;
<p id="demo"></p>
<input type='hidden' id="stars" value='4'>
Switch
语句使用 strict equality comparison (===)
将其表达式与每个 case
子句进行比较。
.value
属性 returns 一个字符串。因此 xx
的值是一个字符串,不匹配任何 case
子句,因为每个 case
子句中的值都是一个数字,并且两种不同类型的值之间的严格相等比较总是计算为错误的。因此,day
永远不会使用初始值 undefined
将每个 case
子句更改为数字即可解决问题
case "4":
day = "Thursday";
break;