开关和case语句混淆-Javascript
我在理解JavaScript中开关和大小写的某些方面时遇到了问题。我的问题是,为什么一个案例有时旁边有一个字符串,有时又没有。一个例子来自FreeCodeCamps课程 这是它的链接,这是我想出的答案,我通过反复试验找到了答案,但我不明白为什么。我所理解的是,开关与if/else-if类似。我确实理解 *我在代码旁边注释了我的困惑所在 链接: 代码:开关和case语句混淆-Javascript,javascript,switch-statement,Javascript,Switch Statement,我在理解JavaScript中开关和大小写的某些方面时遇到了问题。我的问题是,为什么一个案例有时旁边有一个字符串,有时又没有。一个例子来自FreeCodeCamps课程 这是它的链接,这是我想出的答案,我通过反复试验找到了答案,但我不明白为什么。我所理解的是,开关与if/else-if类似。我确实理解 *我在代码旁边注释了我的困惑所在 链接: 代码: 如果你的意思是为什么一个案例有一个int,另一个案例有一个string,那是因为val的值不同。它可能是bob,42,或者其他任何东西,答案是基
如果你的意思是为什么一个案例有一个int,另一个案例有一个string,那是因为val的值不同。它可能是bob,42,或者其他任何东西,答案是基于这个设置的
参考:旧Javascript版本的一个缺陷是变量可以是任何类型。这被认为是一个缺陷,因为变量的类型可能会改变,并且会使读者感到困惑。你的问题是一个很好的例子,说明了为什么Javascript有扩展语言,比如typescript,使其具有类型安全性
您是对的,switch语句类似于if语句。它正在检查整数和字符串,因为变量val可以是任何类型。第一个案例检查val是否持有字符串值bob,第二个案例检查val是否持有整数值42,依此类推。好的,所以如果它的bob,bob,162没有区别,这只是课程让我写它的方式,这样我就可以通过并进入下一课了?-似乎我只是简单地想了想原因,所以我不会感到困惑。你读过这篇文章吗:你在匹配字符串或数字。该值不需要全部为一种类型。很好地解决了这个问题。
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;
}