Comprensione della modalità rigorosa, con esempi
Introdotto in ECMAScript 5, è il modo di optare per la variante limitata di JavaScript. JavaScript è un linguaggio di programmazione leggero interpretato o compilato JIT con funzioni di prima classe.
Lo scopo del letterale “use strict” è di indicare che il codice deve essere eseguito in “modalità rigorosa”. Ci aiuta a identificare alcuni bug nascosti. Non possiamo usare variabili non dichiarate in modalità strict.
- La modalità strict elimina alcuni errori silenziosi di JavaScript cambiandoli in errori di lancio.
- La modalità strict corregge gli errori che rendono difficile per i motori JavaScript eseguire le ottimizzazioni: il codice in modalità strict a volte può essere fatto girare più velocemente di un codice identico che non è in modalità strict.
- La modalità strict proibisce alcune sintassi che probabilmente saranno definite nelle versioni future di ECMAScript.
- Impedisce, o lancia errori, quando vengono intraprese azioni relativamente “non sicure” (come l’accesso all’oggetto globale).
- Disabilita caratteristiche che sono confuse o mal pensate.
- La modalità strict rende più facile scrivere JavaScript “sicuro”.
Tutti i browser moderni supportano “use strict” tranne IE 9 e inferiore.
Invocazione della modalità strict
La modalità strict è applicabile a interi script o alle singole funzioni. Non possiamo applicarlo alle dichiarazioni di blocco racchiuse tra parentesi graffe {}. Se cerchiamo di usarlo all’interno dei blocchi, non avrà alcun effetto.
Applicare la modalità ‘strict’ all’intero script:
Nel caso di esempio di oggetto congelato sopra citato, l’uso della modalità strict comporterà un errore di run-time se cerchiamo di cambiarlo. Tuttavia non è il caso senza usare la dichiarazione strict.
la dichiarazione use strict ha eliminato alcuni errori silenziosi di JavaScript cambiandoli in errori di lancio. È abbastanza utile quando stiamo facendo il debug di qualsiasi applicazione web.
Modalità rigorosa per gli script
- utilizzando la dichiarazione ‘strict’
- senza ‘strict’
Modo rigoroso per le funzioni Javascript
“use strict” può essere usato anche all’interno delle funzioni.
Nell’esempio precedente, abbiamo definito due variabili senza dichiararle: x e y. Poiché abbiamo aggiunto la dichiarazione “use strict” all’interno della funzione, quindi solo y = 22, lancerà l’eccezione. “x = 11” non lancerà nessuna eccezione.
Questo significa che nel caso di cui sopra, lo scopo di “use strict” è legato solo alla funzione e non all’intero file script.
Conclusione
- La modalità strict rende più facile scrivere JavaScript “sicuro”. Cambia la “cattiva sintassi” precedentemente accettata in veri e propri errori. Per esempio, nel normale JavaScript, sbagliare il nome della variabile crea la nuova variabile globale. In modalità rigorosa, risulta un errore, rendendo impossibile la creazione accidentale della variabile globale.
- In JavaScript standard, lo sviluppatore non riceverà alcun feedback di errore assegnando valori alle proprietà non scrivibili. In modalità rigorosa, qualsiasi assegnazione alla proprietà non scrivibile, una proprietà getter-only, una proprietà non esistente, la variabile non esistente, o l’oggetto non esistente, darà un errore.
- Le parole chiave riservate per future versioni di JavaScript non possono essere usate come nomi di variabili in modalità rigorosa. Queste parole chiave sono le seguenti: implements, interface, let, package, private, protected, public, static, yield.
- Nel caso in cui stiamo usando la console del browser per testare qualsiasi funzione, per default la modalità strict non è applicata. Dobbiamo aggiungere manualmente usando ‘use strict’.