`strict mode` in JavaScript

`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.

YouTube Video