我在解决JavaScript中的switch和case的某些方面时遇到了问题。我的问题是为什么一个案例有时会在它旁边有一个字符串,有时为什么不呢。一个例子来自FreeCodeCamps课程。
这是它的链接,这是我想出的答案,我通过反复试验弄明白,但我不明白为什么。我的理解是,开关就像if / else if。我明白了。
*我在代码中注释了我的困惑
链接: https://www.freecodecamp.com/challenges/replacing-if-else-chains-with-switch
代码:
function chainToSwitch(val) {
var answer = "";
// Only change code below this line
switch(val) {
case "bob": // Why is this a string?
answer = "Marley";
break;
case 42: //Why doesn't this one have quotes around it?
answer = "The Answer";
break;
case 1:
answer = "There is no #1";
break;
case 99:
answer = "Missed me by this much!";
break;
case 7:
answer = "Ate Nine";
break;
}
// Only change code above this line
return answer;
}
答案 0 :(得分:0)
如果你的意思是为什么一个case有一个int而另一个有一个字符串,那是因为val的值不同。它可以是“bob”,42或其他任何东西,并根据它设置答案。
答案 1 :(得分:0)
较旧的Javascript版本的一个缺陷是变量可以是任何类型。这被认为是一个缺陷,因为变量的类型有可能改变,并且可能使读者感到困惑。您的问题是一个完美的例子,说明为什么Javascript具有扩展语言,例如打字稿,使其类型安全。
你是正确的switch语句就像一个if语句。它检查int和字符串,因为变量val可以是任何类型。第一种情况检查val是否保持字符串值“bob,第二种情况检查val是否保存整数值42,依此类推。”
答案 2 :(得分:0)
好的,所以如果它的" bob",bob,162,它只是课程让我写它的方式并没有什么不同,所以我可以通过并转到下一个课? - 好像我只是过度思考" WHYS"所以我不会感到困惑。