JavaScript: dettagli e uso di typeof

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:


'use strict';

const sum = (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:


'use strict';

const sum = (a, b) =>{
    if(typeof a !== 'number' || typeof b !== 'number') {
        throw new Error('Numbers required');
        return;
    }
    return a + b;
};

sum(1, 2); // 3
sum('1', 2); Error

Casi speciali

  • Questo operatore restituisce object per gli array, quindi occorre usare il metodo Array.isArray() in questo specifico caso.
  • Usando questo operatore con il valore null si ottiene object, quindi occorre usare in questo caso l'operatore di identità.
Torna su