2012-01-06 13 views
9

Ho riscontrato problemi con il codice riportato di seguito. Ho consultato come utilizzare typeof e switch cases, ma a questo punto sono perso. Grazie in anticipo per i tuoi consigli.Come utilizzare i casi typeof e switch in 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'. 
function detectType(value) { 
    switch (typeof value) { 
    case string: 
     return "str"; 
    case number: 
     return "num"; 
    default: 
     return "other"; 
    } 
} 

------------- Aggiornamento ----------------------------- ------

Risulta che il problema deriva dal mio errore (o piuttosto dalla supervisione) di non seguire correttamente le istruzioni. Grazie ancora per il tuo aiuto e i tuoi commenti!

risposta

20

typeof restituisce una stringa, quindi dovrebbe essere

function detectType(value) { 
    switch (typeof value) { 
    case 'string': 
     return "str"; 
    case 'number': 
     return "num"; 
    default: 
     return "other"; 
    } 
} 
+0

Questo mi porta un'altra domanda. Quando dovrei usare le virgolette singole e quando dovrei usare le virgolette doppie? – stanigator

+0

Non importa, ho inserito virgolette singole nell'esempio sopra solo perché è la mia preferenza personale. Per maggiori dettagli sulla domanda, vedi http://stackoverflow.com/questions/242813/when-to-use-double-or-singlequotes-in-javascript – qiao

1

Questo è il codice della lavorerà per voi:

function detectType(value) { 
    switch (typeof value) { 
    case "string": 
    return "str"; 
    case "number": 
    return "num"; 
    default: 
    return "other"; 
    } 
} 
+0

stringa, il numero deve essere "intorno a loro ... –

+0

Ho già provato questo. Non ha funzionato neanche. – stanigator

2

Questo è il codice che funziona. Sto anche esaminando i coureacademy.com. Il problema era con typeOf con involucro misto. E 'maiuscole e minuscole e deve essere interamente in minuscolo: typeof

function detectType(value) { 
    switch(typeof value){ 
    case "string": 
     return "str"; 
    case "number": 
     return "num"; 
    case "object": 
     return "obj"; 
    default: 
     return "other"; 
    } 
} 
Problemi correlati