2012-01-04 1 views
2

я работал с модулями обучения JavaScript, найденных в CodeAcademy.com и найти себе непогашенной в главе 4, модуль 8 (переключатель - заявления управления потоком)функция JavaScript, которая использует переключатель заявление типа значения

Пожалуйста, смотрите ниже пример запроса:

// 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; 
} 

Может кто-нибудь, пожалуйста, подскажите или скажите мне, что здесь отсутствует?

+2

'переключатель (значение TypeOf) {случай "строка": ... случай "номер": .. .} ' – Esailija

+0

Разве вы не проверяете' typeof'? – PeeHaa

+0

Хм, я не знаю, почему они говорят вам использовать '==='. –

ответ

7

Вы должны использовать typeof оператор:

var value = true; 
switch (typeof value) { 
case 'string': 
+1

вам не нужно 'var value = true; ' –

3

Прочитайте вопрос еще раз - «написать функцию, которая использует операторы переключателей на типа значения». Вам ничего не известно о типе значения, попробуйте использовать оператор typeof.

typeof "foo" // => "string" 
typeof 123 // => "number" 
typeof {} // => "object" 
5
function detectType(value) { 
    switch (typeof value){ 
    case 'string': 
     return 'str'; 

    case 'number': 
     return 'num'; 

    case 'object': 
     return 'obj'; 

    default: 
     return 'other'; 
    } 
} 

вы могли бы ушел из break; в этом случае, так как не является обязательным после return;

Смежные вопросы