Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial
  • Lezione 7 di 112
  • livello avanzato
Indice lezioni

Variabili, costanti e dichiarazioni

Dichiarazione esplicita ed implicita, cosa sono le costanti e come funziona lo Strict Mode.
Dichiarazione esplicita ed implicita, cosa sono le costanti e come funziona lo Strict Mode.
Link copiato negli appunti

Come per ogni linguaggio, anche con JavaScript possiamo utilizzare le variabili per memorizzare valori o oggetti durante l'esecuzione degli script. Una variabile è identificata da un nome che deve rispettare alcune regole:

  • non deve coincidere con una delle parole chiave del linguaggio;
  • non può iniziare con un numero;
  • non può contenere caratteri speciali come ad esempio:
    • lo spazio,
    • il trattino (-),
    • il punto interrogativo (?),
    • il punto (.),
    • ecc.
  • Sono però ammessi:
    • l'underscore (_)
    • il simbolo del dollaro ($).

I seguenti sono esempi di nomi di variabile validi:

variabile
_variabile1
a$tro3

mentre quelli che seguono sono nomi di variabili non validi:

if
2variabili
varia.bile

Ricordiamo che JavaScript è case sensitive, quindi i nomi Variabile1 e variabile1 indicano due variabili diverse.

Dichiarazione implicita delle variabili

JavaScript non prevede la dichiarazione obbligatoria delle variabili, cioè un'operazione esplicita di creazione. Il semplice utilizzo di un identificatore indica all'engine di creare implicitamente la variabile, se non esiste già. Tuttavia questa pratica può favorire errori ed ambiguità.

Ecco un esempio:

variabile = 3;

Una variabile non dichiarata viene automaticamente creata al primo utilizzo ed è accessibile da qualsiasi punto di uno script. Questo significa che in script particolarmente complessi si può correre il rischio di utilizzare involontariamente in punti diversi variabili con lo stesso nome generando comportamenti non previsti.

È opportuno pertanto dichiarare sempre una variabile tramite la parola chiave var:

var miaVariabile;

avendo così la possibilità di stabilire un ambito di accessibilità o scope, come vedremo in seguito.

Strict mode

Come abbiamo detto JavaScript non prevede l'obbligo di dichiarazione delle variabili, quindi potremmo inavvertitamente utilizzare una variabile senza dichiararla, senza che il compilatore JIT fornisca alcuna segnalazione, con il conseguente rischio di incorrere in malfunzionamenti.

Possiamo però lavorare in strict mode, una opzione introdotta nella versione 5 dello standard ECMAScript che ci consente, tra le altre cose, di ricevere una segnalazione di errore quando non dichiariamo le variabili.

Questa modalità, meno permissiva rispetto al classico JavaScript, offre il vantaggio sia di abituarci ad uno stile di programmazione più strutturato, sia di prevenire eventuali futuri malfunzionamenti.

Per abilitare lo strict mode sarà sufficiente inserire all'inizio del nostro codice, il comando:

"use strict";

Da un punto di vista sintattico, notiamo che non si tratta di una istruzione vera e propria, ma di una stringa. Questo garantisce la compatibilità con le versioni precedenti del linguaggio che semplicemente la ignoreranno senza generare errori.

Una volta abilitato lo strict mode, ogni assenza di dichiarazione di variabili sarà intercettata dal motore JavaScript e ci verrà segnalato un errore.

Le costanti

Fino alla versione 5 di ECMAScript non è presente il concetto di costante, cioè di un valore non modificabile. È necessario ricorrere alle variabili, eventualmente con una notazione convenzionale per indicare che si tratta di valori da non modificare nel corso dell'esecuzione dello script. Ad esempio, una convenzione spesso utilizzata è la definizione di un nome con lettere maiuscole:

var PIGRECO = 3.14;

Tuttavia si tratta solo una convenzione. JavaScript non garantisce la sua immutabilità.

A partire dalla versione 6 dello standard viene introdotta la possibilità di dichiarare costanti tramite la parola chiave const:

const PIGRECO = 3.14;

Questo garantisce l'utilizzo in sola lettura del valore, evitando rischi di modifica durante l'esecuzione.


Ti consigliamo anche