`strict mode` in JavaScript
Questo articolo spiega il strict mode
in JavaScript.
YouTube Video
strict mode
in JavaScript
In JavaScript, la strict mode
è una funzionalità introdotta in ECMAScript 5 (ES5) per rendere il codice più sicuro e prevenire errori. Utilizzando la strict mode, alcune sintassi permissive e funzionalità potenzialmente rischiose vengono disabilitate, e vengono imposti controlli degli errori più rigorosi. Ciò consente agli sviluppatori di evitare comportamenti inaspettati e scrivere codice più robusto e ad alte prestazioni.
Abilitare la strict mode
Per abilitare la strict mode
, aggiungi la seguente direttiva all'inizio del tuo codice.
1"use strict";
Questa dichiarazione può essere applicata all'intero script oppure a livello di funzione. Ad esempio, se applicato all'intero script, puoi scriverlo come segue:.
1"use strict";
2
3function example() {
4 // Strict mode is applied
5}
Se applicato per funzione, puoi scriverlo come segue:.
1function example() {
2 "use strict";
3 // Strict mode is applied only within this function
4}
La strict mode
si applica per ambito (scope), quindi può essere abilitata anche all'interno di una funzione. Inoltre, poiché la modalità strict
è abilitata di default nei moduli, non è necessario dichiararla individualmente all'interno del modulo.
Caratteristiche principali e differenze della strict mode
L'uso della strict mode
modifica alcuni comportamenti predefiniti di JavaScript. Ecco i principali esempi.
Divieto di variabili globali implicite
In JavaScript normale, omettere la dichiarazione di una variabile la definisce automaticamente come variabile globale, ma nella strict mode
questo genera un errore.
1"use strict";
2
3x = 10; // Error: x is not defined
Le variabili devono sempre essere dichiarate usando var
, let
o const
.
Restrizioni sull'uso delle parole riservate
Parole chiave potenziali di JavaScript futuro (ad esempio, implements
, interface
, package
, ecc.) non possono essere utilizzate come nomi di variabili o funzioni nella strict mode
.
1"use strict";
2
3var package = "strict mode"; // Error: Unexpected strict mode reserved word
Modifiche nel comportamento di this
In modalità normale, this
all'interno di una funzione si riferisce all'oggetto globale (ad esempio, window
nei browser), ma nella strict mode
, this
è undefined
.
1"use strict";
2
3function example() {
4 console.log(this); // undefined
5}
6
7example();
Questo aiuta a prevenire bug causati dall'uso scorretto di this
.
Divieto di eliminare proprietà non eliminabili
In modalità normale, il tentativo di eliminare proprietà non cancellabili di oggetti viene ignorato senza errore, ma nella strict mode
genera un errore.
1"use strict";
2
3var obj = Object.freeze({name: "John"});
4delete obj.name; // Error: Cannot delete property 'name'
Divieto di nomi di parametri duplicati
In modalità normale, è consentito dichiarare parametri con lo stesso nome più volte, ma nella strict mode
ciò causa un errore.
1"use strict";
2
3function example(a, a) {
4 // Error: Duplicate parameter name not allowed in this context
5}
Proibizione dell'istruzione with
La dichiarazione with
può diminuire la leggibilità del codice ed è vietata nella strict mode
.
1"use strict";
2
3with (Math) {
4 // Error: Strict mode code may not include a with statement
5}
Vantaggi della strict mode
La strict mode
migliora la sicurezza e l'efficienza del codice in vari modi.
Rilevamento degli errori migliorato
Nella strict mode
, vengono rilevati errori trascurati in modalità normale, consentendo agli sviluppatori di individuare potenziali bug in anticipo. Ad esempio, impedisce la creazione di variabili globali non volute e l'uso improprio di parole riservate.
Prestazioni migliorate
Nella strict mode
, i motori JavaScript possono ottimizzare il codice in modo più efficiente. Di conseguenza, la velocità di esecuzione potrebbe migliorare.
Sicurezza del codice migliorata
La gestione di this
diventa più rigorosa, impedendo l'accesso a oggetti globali non necessari, migliorando così la sicurezza del codice. Inoltre, la restrizione sull'uso di parole riservate evita conflitti futuri con parole chiave.
Compatibilità e considerazioni
La strict mode
è stata introdotta con ECMAScript 5 e non è supportata nei browser rilasciati prima di allora. Tuttavia, l'abilitazione della strict mode
viene semplicemente ignorata dai browser non supportati, senza interrompere lo script. Pertanto, può essere generalmente utilizzata in sicurezza.
Quando si introduce la strict mode
in un grande progetto già esistente, è fondamentale un test approfondito per evitare errori imprevisti.
Conclusione
La strict mode
di JavaScript è una funzionalità estremamente utile per migliorare la qualità del codice. In particolare, per progetti di grandi dimensioni o lo sviluppo in team, si raccomanda di utilizzare attivamente la modalità strict per prevenire bug ed errori imprevisti e per migliorare la leggibilità e la manutenibilità del codice.
Comprendere e applicare correttamente la strict mode
aiuta a evitare insidie di JavaScript e consente uno sviluppo più sicuro ed efficiente.
Puoi seguire l'articolo sopra utilizzando Visual Studio Code sul nostro canale YouTube. Controlla anche il nostro canale YouTube.