我一直在使用 CodeAcademy.com 中的JavaScript学习模块,并发现自己在第4章,模块8(交换机控制流程语句)中未得到承认
请参阅下面的示例请求:
// Write a function that uses switch statements on the
// type of value. If it is a string, return 'str'.
// If it is a number, return 'num'.
// If it is an object, return 'obj'
// If it is anything else, return 'other'.
// compare with the value in each case using ===
这就是我能够编码的:
function StringTypeOf(value) {
var value = true
switch (true) {
case string === 'string':
return "str";
break;
case number === 'number':
return "num";
break;
case object === 'object':
return "obj";
break;
default: return "other";
}
return value;
}
有人可以暗示或告诉我这里缺少什么吗?
答案 0 :(得分:7)
您需要使用typeof
运算符:
var value = true;
switch (typeof value) {
case 'string':
答案 1 :(得分:6)
function detectType(value) {
switch (typeof value){
case 'string':
return 'str';
case 'number':
return 'num';
case 'object':
return 'obj';
default:
return 'other';
}
}
在这种情况下您可能会遗漏break;
,因为在return;
之后是可选的
答案 2 :(得分:3)
再次阅读问题 - “编写一个在值的类型上使用switch语句的函数”。您错过了有关值类型的任何内容,请尝试使用typeof
运算符。
typeof "foo" // => "string"
typeof 123 // => "number"
typeof {} // => "object"