Questo operatore ha una sua indiscussa utilità nel verificare la coerenza dei dati.
L'operatore typeof
restituisce il tipo di dati di una variabile. Dato che JavaScript è un linguaggio debolmente
tipizzato che opera conversioni di tipo automatiche sui dati, questo operatore si rivela utile quando c'è bisogno di assoluta coerenza
nei risultati ottenuti.
Ad esempio:
var sum = function(a, b) {
return a + b;
};
sum(1, 2); // 3
sum('1', 2); // '12'
Come si può notare, nella seconda invocazione della funzione otteniamo una stringa numerica generata dalla conversione di tipo e dall'operatore di somma.
Possiamo evitare questo problema con typeof
:
var sum = function(a, b) {
if(typeof a === 'number' && typeof b === 'number') {
return a + b;
} else {
throw new Error('Numbers required');
}
};
sum(1, 2); // 3
sum('1', 2); Error
Nota d'uso: questo operatore restituisce object per gli array, quindi occorre usare il metodo Array.isArray() in questo specifico caso.