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.