Tipi di dati in Javascript

In Javascript, i tipi di dati possono essere raggruppati in due categorie principali: tipi primitivi e tipi di riferimento.

Tipi primitivi

I tipi primitivi sono dati che vengono memorizzati direttamente nell'indirizzo in cui la variabile è allocata e sono rappresentati dal valore stesso. Questo significa che ogni volta che si accede a un valore primitivo, si sta interagendo direttamente con il valore stesso. Questi includono dati come numeri, stringhe, booleani, undefined, null e simboli.

Tipi di riferimento

I tipi di riferimento sono collezioni di proprietà (chiave-valore) che sono memorizzate come riferimenti a locazioni di memoria, piuttosto che come valori effettivi. In altre parole, invece di memorizzare direttamente il contenuto, l'oggetto variabile memorizza un riferimento, ossia un puntatore alla locazione in memoria dove l'oggetto effettivo è conservato. Questo permette a Javascript di gestire strutture dati più complesse come:

  • Object: Il tipo principale di riferimento e la base da cui derivano tutti gli altri oggetti.
  • Array: Un tipo speciale di oggetto usato per memorizzare collezioni ordinate di dati.
    Function: Anche le funzioni in Javascript sono oggetti, e hanno la capacità di essere invocate.

Un aspetto particolarmente interessante di Javascript è la sua capacità di trattare i tipi primitivi come se fossero di riferimento quando necessario.

Ad esempio, se provo a utilizzare metodi tipici degli oggetti su una stringa, JavaScript temporaneamente la tratta come un oggetto, permettendo operazioni come l'accesso ai suoi metodi. Questo comportamento è noto come "boxing" e aiuta a mantenere il linguaggio flessibile e accessibile.

La distinzione tradizionale tra stack e heap, comune in altri linguaggi di programmazione, è meno evidente in Javascript. Al contrario, il linguaggio Javascript utilizza un modello di gestione della memoria basato sugli ambiti di esecuzione e sugli oggetti variabili associati.

Questo approccio riduce la complessità per chi programma e consente di concentrarsi più sulle funzionalità del codice piuttosto che sui dettagli di basso livello della gestione della memoria.

 

 


 

Segnalami un errore, un refuso o un suggerimento per migliorare gli appunti

FacebookTwitterLinkedinLinkedin
knowledge base

Javascript

Le strutture di controllo

Gestione degli errori ed eccezioni

Le strutture cicliche

FAQ