JavaScript: typeof e coerenza dei dati

JavaScript: typeof e coerenza dei dati

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.

Torna su