CodeGym /Corso Java /Frontend SELF IT /Variabili e tipi di dati in JavaScript

Variabili e tipi di dati in JavaScript

Frontend SELF IT
Livello 33 , Lezione 1
Disponibile

2.1 Variabili in JavaScript

JavaScript è un linguaggio di programmazione flessibile e dinamico, che supporta diversi modi per dichiarare variabili e lavorare con i tipi di dati. In questa lezione esamineremo tre modi principali per dichiarare variabili (var, let, const) e i principali tipi di dati primitivi in JavaScript.

Variabili in JavaScript

JavaScript è un linguaggio con tipizzazione dinamica. Le variabili in esso non hanno tipo. A qualsiasi variabile si può assegnare qualsiasi valore in qualsiasi momento (ma ci sono sfumature).

Per creare una variabile bisogna scrivere una costruzione del tipo:

    
      var name;
    
  

Una variabile può essere subito assegnata a un valore:

    
      var name = value;
    
  

Ma in realtà, in JavaScript esistono ben tre modi per creare variabili. Ora ne parleremo più in dettaglio.

Operatore var

Le variabili dichiarate con var hanno uno scope funzionale o globale. Sono soggette a "hoisting", il che significa che la loro dichiarazione viene spostata all'inizio del loro scope di appartenenza durante l'esecuzione del codice.

Esempio:

JavaScript
    
      console.log(x); // undefined
      var x = 10;
      console.log(x); // 10
    
  

In questo esempio la variabile x viene sollevata all'inizio del suo scope, quindi il primo console.log stampa undefined.

In altre parole, il "hoisting" trasforma il nostro codice in questo:

JavaScript
    
      var x;
      console.log(x); // undefined
      x = 10;
      console.log(x); // 10
    
  

Operatore let

Gli sviluppatori volevano tanto cambiare il comportamento dell'operatore var, ma temevano di rompere milioni di righe di codice già scritte. Così hanno semplicemente inventato un altro operatore, che crea anche variabili, ma con un comportamento leggermente diverso.

Le variabili dichiarate con let hanno uno scope di blocco. Ciò significa che sono disponibili solo all'interno del blocco di codice (solitamente tra parentesi graffe {}) in cui sono dichiarate. let non è soggetto a hoisting come var.

Esempio:

La variabile y esiste solo all'interno del blocco if.

JavaScript
    
      if (true) {
        let y = 20;
        console.log(y); // 20
      }

      console.log(y); // ReferenceError: y is not defined
    
  

Operatore const

Le variabili dichiarate con const hanno anch'esse uno scope di blocco e non possono essere riassegnate dopo la loro inizializzazione. Tuttavia ciò non rende immutabili gli oggetti dichiarati con const — le loro proprietà possono essere modificate.

Quindi la variabile non si può cambiare, ma l'oggetto a cui si riferisce — sì. Volevano fare meglio, invece è venuto fuori come sempre.

Esempio:

In questo esempio la costante x non può essere riassegnata, ma l'oggetto obj può essere modificato.

JavaScript
    
      const x = 30;
      console.log(x); // 30
      x = 40; // TypeError: Assignment to constant variable.

      const obj = { name: 'Alice' };
      obj.name = 'Bob'; // Questo è permesso
      console.log(obj.name); // Bob
    
  

2.2 Tipi di dati primitivi

JavaScript supporta diversi tipi di dati primitivi, che rappresentano dei valori semplici, non sono oggetti complessi.

Tipo Number

Rappresenta qualsiasi valore numerico, inclusi numeri interi e numeri a virgola mobile.

Esempi:

JavaScript
    
      let num = 42;
      let pi = 3.14;
    
  

Tipo String

Rappresenta dati testuali: stringhe, caratteri, emoji. Tutto ciò che assomiglia a stringhe — è qui.

Esempi:

JavaScript
    
      let greeting = "Hello, world!";
      let facepalm = "🤦";
      let char = 'x';
    
  

Tipo Boolean

Rappresenta valori logici true o false.

JavaScript
    
      let isTrue = true;
      let isFalse = false;
    
  

Tipo Null

Rappresenta l'assenza intenzionale di un valore.

JavaScript
    
      let empty = null;
    
  

Se il tipo consiste di un solo valore che significa l'assenza di valore, allora forse è più un valore unico che un tipo unico?

Tipo Undefined

Rappresenta il valore di una variabile che è stata dichiarata, ma non è stata inizializzata.

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

2.3 Confronto tra var, let e const

Facciamo un ultimo confronto tra i nostri tre modi di creare variabili:

Caratteristica var let const
Scope Funzionale o globale Blocco Blocco
Hoisting (Solleva) Sì, ma l'inizializzazione non viene sollevata No No
Riassegnazione No
Inizializzazione Non obbligatoria Non obbligatoria Obbligatoria

JavaScript offre diversi modi per dichiarare variabili, ognuno dei quali ha le sue peculiarità e applicabilità a seconda del contesto. var è usato meno frequentemente a causa delle sue peculiarità di hoisting e scope globale. let e const sono preferiti nel moderno JavaScript per il loro scope di blocco e controllo sulla riassegnazione.

I tipi di dati primitivi permettono di lavorare con le strutture di dati di base, fornendo la funzionalità fondamentale necessaria per creare applicazioni complesse. Ed è il linguaggio più popolare al mondo :)

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