Cos’è JavaScript?
JavaScript (JS) è un linguaggio di programmazione, molto utilizzato nei browser insieme a HTML e CSS. È progettato per aggiungere interattività alle pagine web (sliders, allerte, click interactions, popups, ecc..).
JavaScript è utilizzato anche in Node.js, Electron per applicazioni desktop e React Native per applicazioni mobile.
Dichiarare una variabile JavaScript
Una variabile JavaScript può essere considerata come un “contenitore di informazioni”.
Per utilizzare una variabile JavaScript bisogna innanzitutto dichiararla: si utilizzano var, let o const.
In cosa differiscono?
- Scope (ambito di visibilità);
- Hoisting (sollevamento);
- Riassegnazione (cambiare valore di una variabile dopo averla dichiarata);
- Ri-dichiarazione (dichiarare una stessa variabile più volte nello stesso scope).
> let nome = "Alex", id = 2
> console.log(nome)
AlexIn JavaScript, ogni riga deve finire con ”;“.
var
Caratteristiche
Scope: function scope o global scope se dichiarata al di fuori di una funzione Hoisting: sì Riassegnazione: permessa Ri-dichiarazione: permessa
Evita var nel codice moderno per prevenire problemi legati allo scope e all’hoisting. Opzionalmente può essere inizializzata con un valore. Usato prevalentemente in codici “old-school”.
let
Usa let solo se hai bisogno di riassegnare il valore della variabile. Opzionalmente può essere inizializzata con un valore.
Caratteristiche
Scope: block scope (può essere utilizzata solo all’interno del blocco
{}in cui è definita, ad esempio dentro unif, unforo un blocco isolato) Hoisting: sì ma non vengono inizializzate (Temporal Dead Zone (TDZ)) Riassegnazione: permessa Ri-dichiarazione: non permessa (Syntax Error)
> let desc;
> desc = "Questa è una descrizione";
> desc = "Sto aggiornando la descrizione";
> console.log(desc);
Sto aggiornando la descrizioneconst
Usa const di default per tutte le dichiarazioni. Passa a let solo se sai specificamente che avrai bisogno di riassegnare il valore. Questo rende il codice più prevedibile e facile da seguire. Se una costante è un oggetto o un array le sue proprietà o componenti possono essere modificati o rimossi.
Caratteristiche
Scope: block scope Hoisting: sì ma non vengono inizializzate Riassegnazione: non permessa Ri-dichiarazione: non permessa