CodeGym /Corsi /Frontend SELF IT /Tipi speciali in JavaScript

Tipi speciali in JavaScript

Frontend SELF IT
Livello 35 , Lezione 1
Disponibile

2.1 Le variabili sono riferimenti

In JavaScript le variabili rappresentano riferimenti agli oggetti, non alla variabile stessa. Questo significa che, quando crei una variabile in JavaScript, stai semplicemente creando un riferimento a un oggetto in memoria.

Questa caratteristica del linguaggio ha importanti conseguenze sul funzionamento delle variabili, specialmente quando si passano oggetti alle funzioni o si assegnano ad altre variabili.

Quando crei una variabile e le assegni un valore, JavaScript alloca un oggetto in memoria per quel valore e rende la variabile un riferimento a quell'oggetto. Se assegni una variabile a un'altra, la nuova variabile farà riferimento allo stesso oggetto della variabile originale. Ciò significa che le modifiche fatte tramite una variabile si rifletteranno anche sull'altra, se l'oggetto è mutabile.

Esempio:

JavaScript
    
      let a = [1, 2, 3];
      let b = a;

      b.push(4);
      console.log(a);  // Mostrerà: [1, 2, 3, 4]
    
  

Abbiamo aggiunto il numero 4 alla variabile b, ma è stato aggiunto anche all'array nella variabile a, poiché in realtà entrambe le variabili sono solo riferimenti all'oggetto array [1, 2, 3]

2.2 Tipo undefined

In JavaScript esistono due tipi di dati speciali: null e undefined. Questi tipi spesso generano domande tra gli sviluppatori a causa della loro somiglianza, ma hanno scopi diversi e sono utilizzati in situazioni diverse. Esaminiamo più dettagliatamente.

Tipo undefined

Il tipo undefined rappresenta il valore di una variabile che è stata dichiarata ma non inizializzata. Questo valore viene restituito anche quando si accede a una proprietà inesistente di un oggetto o a un elemento di un array che non esiste.

Esempi

1. Variabile non inizializzata:

JavaScript
    
      let x;
      console.log(x); // undefined
    
  

2. Proprietà inesistente di un oggetto:

JavaScript
    
      let obj = {};
      console.log(obj.property); // undefined
    
  

3. Elemento inesistente di un array:

JavaScript
    
      let array = [1, 2, 3];
      console.log(array[5]); // undefined
    
  

4. Argomento mancante di una funzione:

JavaScript
    
      function myFunction(a, b) {
        console.log(b); // undefined, se chiamata come myFunction(1)
      }
      myFunction(1);
    
  

Proprietà di undefined:

  • undefined è sia un tipo di dati che un valore
  • typeof undefined restituisce undefined

2.3 Tipo null

Il tipo null rappresenta l'assenza intenzionale di un valore. Questo valore è spesso usato per inizializzare variabili che saranno successivamente assegnate a un oggetto o per cancellare il valore di una variabile.

Esempi

1. Inizializzazione di una variabile:

JavaScript
    
      let obj = null;
      console.log(obj); // null
    
  

2. Cancellazione del valore di una variabile:

JavaScript
    
      let user = { name: "Alice" };
      user = null; // user ora non punta più a un oggetto
    
  

Proprietà di null:

  • null è un valore che rappresenta l'assenza intenzionale di un valore
  • typeof null restituisce object, il che è un errore noto nel linguaggio JavaScript (in realtà null non è un oggetto)

2.4 Confronto tra null e undefined

Sebbene null e undefined possano essere utilizzati per indicare l'assenza di un valore, si differenziano per scopo e contesto d'uso.

Proprietà null undefined
Tipo Tipo primitivo Tipo primitivo
Scopo Assenza intenzionale di un valore Variabile non inizializzata
Utilizzo Inizializzazione di variabili, cancellazione di un valore Proprietà inesistenti, elementi di array
Valore di default No Sì (per variabili non inizializzate, parametri di funzioni)

Esempi di utilizzo

1. Inizializzazione di una variabile con un oggetto o array:

JavaScript
    
      let myObject = null;
      let myArray = null;
    
  

2. Controllo dei valori:

JavaScript
    
      let value;

      if (value === undefined) {
        console.log("La variabile non è inizializzata.");
      }

      let result = null;

      if (result === null) {
        console.log("Assenza di valore.");
      }
    
  

3. Cancellazione di valori:

JavaScript
    
      let person = { name: "Alice" };
      person = null; // Ora person non punta più a un oggetto
    
  

4. Controllo dell'esistenza di una proprietà:

JavaScript
    
      let obj = {};

      if (obj.property === undefined) {
        console.log("La proprietà non esiste.");
      }
    
  

Capire le differenze tra null e undefined in JavaScript è importante per gestire correttamente i valori e prevenire errori nel codice.

undefined di solito indica variabili non inizializzate o proprietà mancanti, mentre null è usato per indicare esplicitamente l'assenza di un valore.

L'uso corretto di questi tipi di dati speciali rende il codice più comprensibile e prevedibile.

Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION