JavaScript: Strict Mode.

 

Nella precedente lezione della nostra guida, abbiamo visto che Javascript non “obbliga” lo sviluppatore a dichiarare le variabili, anche se la dichiarazione della variabile mediante la clausola var può essere considerata una buona abitudine di programmazione, ma non indispensabile ai fini del corretto funzionamento degli script.

Tuttavia, Javascript consente di utilizzare nel codice anche variabili mai dichiarate senza produrre alcun avviso. Facciamo un esempio:

miavar = 123;

Nel codice qui sopra ho ipotizzato di introdurre per la prima volta nel mio script la varabile “miavar” pur omettendo la clausola var. Nonostante questa mia “imprecisione” l’interprete Javascript creerà ugualmente una variabile globale di nome “miavar” senza produrre alcun avviso.

Anche se sotto un certo punto di vista ciò può essere considerato alla strega di una comodità, in talune circostanze, soprattutto in contesti di sviluppo complessi, tale “comodità” potrebbe rivelarsi un’arma a doppio taglio in quanto questa tolleranza potrebbe portare lo sviluppatore ad introdurre errori nel codice rendendo più complesse le attività di debug.

In simili situazioni può essere utile fare ricorso al cosiddetto strict mode, ovvero attivare per l’interprete Javascript una sorta di livello di “tolleranza zero”. Tale possibilità è stata introdotta con JavaScript 1.8.5 e prevede l’inserimento di una semplice stringa di testo all’inizio dello script:

"use strict";

// ...
// SEGUE IL CODICE DELLO SCRIPT
// ...

oppure all’inizio di una specifica funzione:

function foo() {
  "use strict";
  // ...
  // CODICE DELLA FUNZIONE
  // ...    
}

E’ importante precisare che use strict non è un comando vero e proprio ma una literal expression e che il suo effetto verrà prodotto solo sui browser che incorporano versioni recenti del motore Javascript, è quindi evidente, pertanto, che tale dichiarazione non sortirà alcun effetto sui browser più obsoleti.

Gli effetti prodotti da “use strict”.

Una volta attivato lo strict mode, le pratiche prima ammesse dall’interprete diventeranno causa di errori. L’esempio più lampante riguarda le variabili non dichiarate:

"use strict";
miavar = 123;

Questo codice produrrà un errore in quanto “miavar” non è stata dichiarata.

Come detto la dichiarazione ad inizio dello script produrrà effetti globali, pertanto:

"use strict";
foo();

function foo() {
  prezzo = 123;
  document.write(prezzo);    
}

anche questo codice genererà un errore, in quanto la variabile “prezzo”, utilizzata all’interno della funzione, non è stata dichiarata.

Ben diverso il caso in cui use strict sia stato dichiarato all’inizio di una funzione. Vediamo un esempio:

miavar = 123;
foo();

function foo() {
  "use strict";
  prezzo = 123;
  document.write(prezzo);    
}

In quest’ultimo caso a produrre errore sarà solo “prezzo” in quanto “use strict” dispiegherà i suoi effetti solo nel contesto della funzione, quindi ne consegue che la dichiarazione imperfetta di “miavar” sarà considerata valida e funzionante dall’interprete Javascript.

Ed anche questa lezione si conclude qui, vi invito a lasciare un mi piace all’articolo e spero che non ci siano stati problemi di comprensione, in ogni caso potete contattarmi ad uno dei miei indirizzi di contatto o direttamente dal modulo di contatto del sito. Per concludere vi auguro come sempre un buon proseguimento e noi ci aggiorniamo alla prossima lezione di questa guida alla programmazione JavaScript ciao! 😉

0
HeartHeart
0
HahaHaha
0
LoveLove
0
WowWow
0
YayYay
0
SadSad
0
PoopPoop
0
AngryAngry
Voted Thanks!