Guardiamo i diversi scenari in cui questo semplice cambiamento può aiutarvi.
Una variabile non viene aggiunta all’oggetto globale/finestra se non è dichiarata.
Per default, se una variabile non dichiarata è definita, viene aggiunta all’oggetto globale/finestra. Questo può creare un errore e può anche essere difficile da trovare.
Per evitare tali scenari, possiamo dichiarare use strict. La modalità strict non permette l’uso di variabili che non sono state dichiarate.
Non si possono dichiarare variabili che potrebbero essere usate come parole di riserva future.
Come possiamo vedere nell’esempio precedente, sul lato sinistro siamo stati in grado di dichiarare una variabile e nominarla let che è una parola chiave riservata ES6. Tecnicamente questo dovrebbe lanciare un’eccezione, ma è ignorato dal compilatore.
Inoltre, possiamo vedere sul lato destro, abbiamo ottenuto un errore di sintassi passando ad un contesto operativo strict. Dovremmo optare per la modalità strict, per evitare di usare una parola chiave riservata per i nomi delle variabili.
Impedisce di cancellare funzioni, variabili e argomenti di funzioni:
L’operatore delete in sé è usato per rimuovere una proprietà su un oggetto.
L’operatore delete non può essere usato per eliminare una funzione, variabile o argomenti.
Quando è in modalità strict lancerà un’eccezione Type Error. Questo accade perché stiamo cercando di eliminare una proprietà ma il valore stesso.
L’uso di eval viene limitato:
In JS la funzione eval è usata per eseguire espressioni JavaScript in formato stringa.
Proviamo ad implementare lo stesso codice in modalità strict: