Un dato in JavaScript è sempre definito da un tipo, che ne identifica appunto la specificità e che consente di allocare a livello fisico, nella memoria del nostro calcolatore, una certa quantità di spazio.

Esistono 8 tipi di base in JavaScript ed ognuno di essi presenta delle peculiarità che andremo a scoprire di seguito.

Innanzitutto è bene precisare che linguaggi come JavaScript in cui una variabile può contenere prima un tipo di dato e successivamente un altro, sono detti dinamicamente tipati, poiché la variabile non viene legata al tipo di dato che sarà inserito al suo interno.

NUMBER

Il tipo number viene usato sia per i numeri interi che per quelli in virgola mobile.

Con valori di questo tipo si hanno a disposizione diverse operazioni, ad esempio le quattro classiche operazioni algebriche: moltiplicazione, addizione, sottrazione e divisione oltre a molte altre.

Per questa tipologia di dati, oltre a valori numerici standard, esistono anche dei valori numerici speciali che sono: Infinity, -Infinity e NaN.

 

  • Infinity rappresenta molto semplicemente il concetto matematico di infinito.
  • Nan rappresenta invece un errore di calcolo, e può essere il risultato di un’operazione di calcolo non corretta o indefinita.

BIGINT

In JavaScript il tipo number non può rappresentare valori interi più grandi di (253-1) che equivale a 9007199254740991 oppure minori di -(253-1).

Per la maggior parte degli scopi questo intervallo è più che sufficiente, ma in alcuni casi specifici, in cui è necessario trattare numeri piuttosto grandi, come ad esempio in crittografia, si ricorre allora all’uso di un altro tipo che prende in nome di BigInt.

Molto semplicemente per creare un valore di tipo BigInt, basta aggiungere una n alla fine del numero., ad esempio:

 

const varBigInt = 012345678901234567890123456789n;

STRING

Una variabile di tipo string rappresenta molto semplicemente una stringa e per essere considerata tale, essa deve essere posta tra apici di apertura e chiusura.

In JavaScript esistono tre tipo di apici differenti:

 

  1. Apici doppi: “Hello”.
  2. Apice singolo: ‘Hello’.
  3. Backtick: `Hello`.

 

I primi due sono apici definiti semplici, trattati da JavaScript allo stesso modo.

Il backtick è un tipo di apice utilizzato per definire stringhe con funzionalità estese, consentendo ad esempio di integrare variabili ed espressioni in una stringa racchiudendola tra ${…}.

Ad esempio:

 

let nome = “Mario”;

alert(`Ciao, ${nome}!`);     // Ciao Mario!

 

L’espressione all’interno di ${…} viene valutata e il risultato inserito nella stringa.

È importante quindi capire l’uso dei backtick perché solo con essi è possibile effettuare questo tipo di operazione.

 

È bene sottolineare che in JavaScript, a differenza di altri linguaggi quali Java e C, non esiste il tipo di dato char, che rappresenta un solo carattere, ma con il tipo string si può rappresentare ogni tipo di stringa, anche formata appunto da un solo carattere.

BOOLEAN

Quest’altra tipologia di dato, come già il nome può far intendere, è una tipologia che prevede soltanto due valori: true o false, atte a rappresentare variabili di tipo booleano e memorizzare quindi valori Sì/No.

Ad esempio:

 

let isChecked = true;        // sì, il campo è spuntato

 

I valori booleani si ottengono anche come risultato di operazioni di confronto.

NULL

Questo è un valore speciale che non appartiene a nessun tipo visto finora, ma fa parte di un tipo a sé che contiene soltanto il valore null.

In JavaScript null non è un riferimento ad un oggetto inesistente, come in altri linguaggi, ma è solamente un valore speciale utilizzato per indicare il valore nullo, vuoto.

UNDEFINED

Il valore speciale undefined è un altro tipo a sé stante e ha il significato di valore non assegnato.

Ad esempio, se una variabile viene dichiarata ma non assegnata, il suo valore sarà esattamente undefined.

OBJECT & SYMBOL

Il tipo object è un tipo speciale.

Tutti gli altri tipi visti finora sono definiti primitivi in quanto i loro valori possono contenere solo una cosa (un numero, una stringa, …).

Gli oggetti invece vengono utilizzati per memorizzare una collezione di dati ed entità complesse.

 

Il tipo symbol viene invece utilizzato per creare identificatori unici per gli oggetti.

TYPEOF

L’operatore typeof ritorna il tipo dell’argomento, utile quando si vogliono eseguire controlli rapidi su una variabile.

Per questo operatore sono supportate due sintassi:

 

  1. Come operatore: typeof x.
  2. Come funzione: typeof(x).

 

Ad esempio:

 

typeof 20n             // “bigint”

typeof true           // “boolean”

typeof(“ciao”)     // “string”

RIEPILOGO

In JavaScript ci sono 7 tipi base:

  1. number per i numeri interi o in virgola mobile
  2. bigint utilizzato per definire interi di lunghezza arbitraria e piuttosto grande
  3. string per tutti i tipi di stringhe, anche formate da un solo carattere
  4. boolean per valori vero/falso
  5. null per valori sconosciuti, vuoti o nulli
  6. undefined per valori non assegnati
  7. object per strutture dati più complesse
  8. symbol per identificatori numerici.

 

Ed infine l’operatore typeof che consente di vedere quale tipo è memorizzato nella variabile.

Esso fornisce in output una stringa, con il nome del tipo.

Articoli del tutorial