在函数类型上使用switch语句的JavaScript函数

时间:2012-01-04 21:23:47

标签: javascript

我一直在使用 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;
}

有人可以暗示或告诉我这里缺少什么吗?

3 个答案:

答案 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"