JavaScript: un test sul comportamento del metodo globale parseInt()

Short link

Un semplice test di verifica sul comportamento del metodo globale parseInt() in JavaScript.

parseInt() restituisce il valore NaN (Not A Number) quando la conversione di un dato non restituisce un numero intero.

Questo metodo nasce per convertire una stringa numerica nel numero intero equivalente. Tuttavia, dato che JavaScript è un linguaggio debolmente tipizzato che attualmente non supporta il type hinting per gli argomenti delle funzioni, non è inusuale passare accidentalmente valori diversi da una stringa numerica a parseInt().

Possiamo verificarne il comportamento effettuando questo semplice test:


'use strict';

const values = ['10', '5.2', 10, 5.2, true, false, null, {a: 1}, {}, [1], []];

values.forEach(value => {
    console.log(value + ': ' + parseInt(value, 10));
});

Avremo questi risultati:

Input Output
'10' 10
'5.2' 5
10 10
5.2 5
true NaN
false NaN
null NaN
{a: 1} NaN
{} NaN
[1] 1
[] NaN

Il comportamento segue ovviamente le specifiche ECMAScript, ma come si può notare nel caso dei valori booleani e degli array, tale comportamento non è immediatamente intuibile.

L'autore

Gabriele Romanato, sviluppatore web full stack specializzato in siti, applicativi web ed e-commerce con Node.js e PHP.