This article is currently in the process of being translated into Italian (~98% done).
Introduction
Abbiamo parlato brevemente riguardo al fatto che JavaScript è un linguaggio dinamico all'inizio di questo tutorial, ma in questo articolo, così come nei seguenti, discuteremo dei vari tipi di dati che potrai incontrare quando lavori con JavaScript. Ma perché preoccuparsi dei tipi di dati se il linguaggio di programmazione usa dei tipi dinamici?
Bene, anche se JavaScript non è rigoroso quando si tratta di tipi, ci saranno comunque situazioni dove i tipi contano. Per esempio, cosa succede se moltiplichi "42" (una stringa di testo con il numero 42) per 2 (il numero 2)? Un linguaggio rigoroso si lamenterebbe di qualcosa del genere , ma a JavaScript non importa.
Dynamic types
Ma parliamo un po' di cos'è un tipo dinamico e su come usarlo. In un linguaggio di programmazione fortemente tipizzato, di solito devi dichiarare una variabile che sia di un tipo specifico, una stringa o un numero intero, e una volta dichiarata la variabile , non puoi cambiare il tipo e se provi ad assegnare qualcosa ad un altro tipo di variabile, il compilatore si lamenterà. In JavaScript, non devi definire un tipo e puoi facilmente assegnare un altro tipo successivamente. Ecco un esempio:
let answer = 42;
answer = "The answer to everything: 42";
alert(answer);
Nota che ho dichiarato la variabile chiamata "answer" e dopo gli ho assegnato il numero (42). Nella prossima riga, ho cambiato idea e gli ho assegnato una stringa, e poi ho stampato la risposta. JavaScript non si lamenterà affatto di questo cambiamento : sei libero di fare quello che vuoi, perché non è previsto che la variabile abbia un tipo specifico.
Tipi che contano ancora
Ma come ho già menzionato, solo perché i tipi sono dinamici non significa che non esistono. Di fondo, JavaScript fa un sacco di cose per te, perciò non ti devi preoccupare riguardo ai tipi. Come illustrazione, torniamo al mio esempio di moltiplicare due numeri, dove uno di essi è una stringa che contiene un numero:
let n1 = "42", n2 = 2;
alert(n1 * n2);
In questo caso, JavaScript ipotizza che probabilmente stai cercando di moltiplicare due numeri, quindi anche se uno di essi è in realtà una stringa di testa, il risultato è ancora 84. Ma cosa succede se proviamo a sommare i numeri invece di moltiplicarli?
let n1 = "42", n2 = 2;
alert(n1 + n2);
Ci si potrebbe aspettare che il risultato sia 44, ma invece si ottiene "422". Perché? Perché in questo caso, JavaScript non può sapere che stai cercando di fare matematica, ma tratta entrambe le variabili come stringhe di testo e le aggiunge. Questo è un ottimo esempio del motivo per cui i tipi sono ancora presenti in un linguaggio tipizzato dinamicamente, perché non si otterranno avvisi o lamentele sull'esempio precedente, anche se il risultato potrebbe non essere quello previsto.
Tipi primitivi
La maggior parte dei linguaggi di programmazione distingue tra tipi primitivi e tipi complessi/di riferimento. JavaScript fa lo stesso, dove abbiamo diversi tipi primitivi da un lato, e oggetti dall'altro lato. Per riferimento, questi sono i tipi di dati primitivi supportati dal linguaggio JavaScript:
- bigint
- boolean
- null
- number
- string
- symbol
- undefined
Questo capitolo è tutto riguardo ai tipi primitivi e li esamineremo tutti nei prossimi articoli. Successivamente, esamineremo alcuni degli oggetti incorporati e come è possibile definire i propri tipi complessi.
Riassunto
JavaScript usa dei sistemi di tipo dinamico, che permettono di dichiarare e usare le variabili senza avere un tipo specifico. Comunque, come dimostrato in questo articolo, devi prestare attenzione a come usi le variabili di differenti tipi insieme.
Negli articoli successivi, approfondiremo i vari tipi di JavaScript usati dietro le quinte durante la gestione del codice e come puoi usarli.