Le variabili JavaScript possono contenere valori di qualsiasi tipo e cambiare senza problemi il tipo di dato contenuto.
In Javascript lo sviluppatore è libero di non dichiarare esplicitamente il tipo di dato che può contenere una variabile, in quanto l'engine JavaScript si occuperà di identificarne la natura e di convertirne, in maniera implicite, il tipo, in particolari situazioni.
Le variabili in Javascript possono assumere differenti valori:
let primaVariabile = "Ciao"; let secondaVariabile = 10; let terzaVariabile = true; let quartaVariabile;
La variabile "primaVariabile" è di tipo stringa/testuale String
La variabile "secondaVariabile" è di tipo numerica Number
La variabile "terzaVariabile" è di tipo Booleana boolean
La variabile "quartaVariabile" è solo dichiarata e non inizializzata quindi avrà valore null
La variabile "quintaVariabile" non è stata dichiarata (non esiste) ed avrà valore undefined
In rete ho trovato questa immagine che credo spieghi con semplicità ed ironia i vari valori che una variabile può assumere
In qualsiasi momento è possibile verificare il tipo della variabile tramite l’operatore typeof
I valori restituiti possono essere: "string"
, "boolean"
, "number"
, "function"
, "object"
, "undefined"
, "xml"
.
var primaVariabile = new Function(); var secondaVariabile = 1; var terzaVariabile = "Salve"; console.log(typeof primaVariabile ); // ritorna "function" console.log(typeof secondaVariabile ); // ritorna "number" console.log(typeof terzaVariabile ); // ritorna "string"
let primaVariabile = "4"; let nuovaPrimaVariabile = Number(primaVariabile);
Cosi facendo attraverso la funzione "Number()" è possibile convertire un valore stringa in valore numerico
let primaVariabile = "quattro"; let nuovaPrimaVariabile = Number(primaVariabile);
In questo esempio avremo ottenuto il valore NaN ovvero "Not a Number" il quanto si è tentato di convertire si un valore stringa ma che non è numerico
let primaVariabile = "12renne"; let nuovaPrimaVariabile = Number(primaVariabile);
Anche in questo caso ci sarà restituito il valore Nan, ma attraverso le funzioni parseInt() e parseFloat() possiamo tentare in ogni caso di convertire il valore della "primaVariabile"
parseInt("12") // sarà convertito in valore numerico intero 12 parseInt("12renne") // sarà convertito in valore numerico intero 12 (eliminando la parola che segue) parseInt("re12nne") // ci sarà restituito valore NaN parseInt("12.5") // sarà convertito in valore numerico intero 12 (eliminando ciò che si trova dopo la virgola) parseInt("12", 8) // sarà convertito in valore di 12 nel sistema di numerazione ottale (base 8), cioè 10
Note: da notare come la presenza di caratteri non numerici in coda alla stringa venga ignorata, mentre impedisce di fatto la conversione se questi si trovano all’inizio.
Se volessimo conservare nella conversione i numeri dopo la virgola potremo utilizzare la funzione parseFloat()
parseFloat("12") // sarà convertito in valore numerico intero 12 parseFloat("12.5") //sarà convertito in valore numerico intero 12 mantenendo i numeri dopo la virgola