‘use strict’, può esserti capitato delle volte di averla vista in JavaScript e in questo articolo scopriamo a cosa serve e come funziona.
Ciao mi chiamo Lorenzo Neri e sono un informatico: realizzo contenuti per aiutare le persone a padroneggiare l’arte del nuovo millennio, ovvero l’informatica!
Partiamo dalle basi: la modalità Strict!
Strict Mode
È una nuova feature introdotta in ECMAScript 5 che permette di impostare la modalità operativa di un programma o di una funziona a livello “restrittivo”.
Sì, tutto molto bello, ma che vuol dire? a che cosa serve e come funziona?
La modalità “strict” permette di evitare che certe azioni vengano eseguite e si vada a limitare la generazione di eccezioni.
Non solo: può aiutarti a gestire non poche altre cose. Per esempio:
- Permette di catturare diversi blooper, così da genere eccezioni specifiche per gestirli.
- Previene la generazione di errori quando vengono eseguite azioni non del tutto sicure (per esempio ottenere l’accesso all’oggetto globale)
Ovviamente, se vuoi approfondire ancora di più l’argomento, ti invito a leggere qui un articolo molto interessante a riguardo.
Come implementare la strict mode
Ora che abbiamo capito a cosa serve e come funziona “use strict”, vediamo come implementarla in JavaScript.
Dicevo all’inizio di questo articolo che possiamo usarla sia sui file quindi programmi interi, sia su funzioni ben specifiche.
Facciamo un esempio concreto:
function informatico(){
"use strict";
//Codice della tua funzione
}
//Codice non soggetto a strict
Così facendo, le potenzialità della strict mode, vengono applicate solo alla funzione “informatico”.
Se te lo stessi chiedendo, è ormai supportata dalla totalità dei browser esistenti e anche qui ti lascio le referenze.
ECMAScript 6: come va?
Abbiamo visto a che cosa serve e come funziona la “use strict” in ES5, ma in ES6 come cambiano le cose?
All’interno di diversi moduli ECMAScript nativi così come nelle classi, la modalità “use strict” è sempre attiva e non può essere disabilitata.
Di fatto, è altamente probabile che tu ti sia imbattuto nel termine proprio durante l’uso di qualche framework JavaScript basato su ES6: ci ho preso? 🙂