關于switch里面表達式是不是必須是數值的問題
<body>
<script type="text/javascript">
var mes=prompt("請輸入星期","");
?if (mes==1|mes==2)
? ? document.write("學習理念知識");
else if (mes==3|mes==4)
? ? ?document.write("到企業實踐");
else if (mes==5)
? ? ?document.write("總結經驗");
else
document.write("回家帶娃");
?
/*
switch (mes)
{
?case 1:
?case 2:
?document.write("學習理念知識");
?break;
?case 3:
?case 4:
?document.write("到企業實踐");
?break;
?case 5:
?document.write("總結經驗");
break;
default:
?document.write("回家帶娃");
}
*/
</script>
</body>
想實現的是, 通過prompt輸入星期所對應數字,然后告訴你該做什么,用前面的if else 可以簡單實現, 但是用switch怎么都不能正常運行,我試過prompt返回值是數值啊,為什么switch不起作用?
另外還發現一個問題, 邏輯或 不是應該是 雙豎線“||” 嗎, 怎么這里用雙豎線反而是錯的, 用單實線是對的 if (mes==1|mes==2)
2016-09-23
1. prompt返回值為字符串,case后面的值需要類型和數值都匹配。
? ? ? ?正確答案是:
2. 邏輯或中 | 和 || 都是可以的
但是為了代碼更準確(返回值其實是字符串),請使用下面的代碼:
2016-09-23
剛剛看了一下有個朋友也在問這個問題,我就試了一下, 給case里面的數值加上""就對了, 我可以這樣理解 嗎?
// prompt 獲取是的字符串,所以在case后面的值應該加"";
?如果是和一個數值進行比較, 還可以寫成這樣:?switch(parseInt(mes))