JavaScript: un test sul comportamento del metodo globale parseInt()
Un semplice test di verifica sul comportamento del metodo globale parseInt() in JavaScript.
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.
Commenti