Le 2 maniere di scrivere codice JavaScript

In questo video parleremo dei due diversi modi in cui si può scrivere codice JavaScript.
Infatti, Javascript è così flessibile che dà la possibilità al programmatore di scegliere se scrivere il codice in maniera molto precisa o leggermente più approssimativa.
La maniera approssimativa o meglio permissiva ("sloppy mode" in inglese) e la maniera di default, cioè, se io comincio a scrivere codice in un file, automaticamente lo sto scrivendo in maniera permissiva. La seconda maniera, detta severa ("strict mode" in inglese) deve essere selezionata dal programmatore, e viene richiesta inserendo la stringa "use strict" nel proprio file JavaScript.
La differenza sostanziale tra le due modalità è che in "sloppy mode" JavaScript chiude un occhio su alcune "sviste" del programmatore e non segnala l'errore.
Come vedremo nel video, lo "use strict" rispetta lo scope (vedere video sez2/6).
Il mio consiglio è di prendere l'abitudine di lavorare sempre in "strict mode", facendo così si evitano molti errori che potrebbero passare inosservati e che poi potrebbe risultare difficile trovare, inoltre, scrivendo il codice in maniera severa si evitano problemi di compatibilità tra le varie versioni di JavaScript.

Trascrizione: (click per espandere)
salve a tutti in questo video vado a
parlarvi delle due maniere in cui si
programma in javascript e allora si può
programmare in una maniera permissiva
che in inglese si dice sloppy mode o in
una maniera un po' più severa un po' più
rigida che in inglese si dice strict
mode la differenza tra le due è che con
la prima javascript chiude un occhio su
qualche sbadataggine dello sviluppatore
su qualche piccolo errore
il problema di usare questa maniera di
sviluppare che questi errori possono
andare a sommarsi e poi magari il codice
crasha ed è difficile capire perché ha
crashato o perché magari ci sono
incompatibilità tra le varie versioni di
javascript quindi sempre meglio usare
la maniera severa perché se c'è qualche
problema lo so subito mentre scrivo il
codice e lo posso risolvere subito
allora normalmente se io non specifico
niente scrive automaticamente sto
scrivendo il codice in maniera
permissiva
se io voglio scrivere il codice in
maniera severa si mette questa stringa
"use strict" e automaticamente da
questa linea in poi io vado a scrivere
codice in maniera severa
adesso vi faccio vedere un paio di
esempi tra la maniera permissiva e la
maniera severa allora io dichiaro una
variabile la chiamo x e li metto 10 poi
vado a fare il suo output
ok andiamo a vedere e qui ho dieci tutto
a posto nessuno si lamenta però cosa c'è
qui ho dichiarato una variabile senza la
keyword var let o const quindi nel
momento in cui io vado a vedere la
maniera severa javascript mi duce guarda che
c'è un errore quella x non è stata
definita andiamo a vedere un'altra
maniera
per un'altra differenza iniziamo mia
funzione e dentro ci metto anche qui dichiaro una ipsilon
uguale 50 console log y e poi vado a
usare la mia funzione
allora facciamo così
ancora una volta javascript e mi fai
output delle due funzioni delle due
variabili senza lamentarsi però io anche
qui ho usato una variabile che non è
stata dichiarata e adesso se io uso
lo use strict dentro la funzione come
vedete la prima variabile javascript dice
va bene la seconda mi disse guarda che
c'è un errore perché anche lo use
strict rispetta lo scope
se non vi ricordate cos'è lo scope vi
metto il link in descrizione che vi
rimanda al video in cui parlo dello
scope quindi sappiate che lo use strict
rispetto allo scope
adesso andiamo a vedere un altro un
altro esempio io ho un'altra mia
un'altra funzione function mia funzione
due la chiamo e dentro ci metto
parametri un paio di parametri e qui
faccio return param più param ecco qui e poi vado a
fare la output console log mia funzione
due dentro cemento i due argomenti che
può essere un 5 e poi può esserci un 10
andiamo a vedere
eccolo qui mi dice venti però se
guardate bene c'è qualcosa che non
va perché 5 più 10 fa 15 e allora
cosa succede qui si vede che ho usato
per i due parametri lo stesso nome
param quindi sta usando due
parametri con lo stesso nome javascript
non mi dice guarda che c'è un errore e
questo è uno dei classici casi in cui io
non potrei potrei non accorgermi di
questo errore però se io sono in
modalità strict
mi dice subito duplicato parametro name
e quindi un motivo in più un altro
motivo per cui meglio usare sempre
strict
facciamo vedere un altro esempio ancora
per esempio se io sto usando come variabile nome di una variabile
una parola che è riservata come può
essere yield
il che se vi ricordate il viene usato
dai generatori e se vi ricordate il
video in cui parlo dei generatori di javascript si usa questa keyword e ci
metto non so 50 e poi vado a fare console log ancora javascript non si
lamenta però questa è una parola
riservata quindi se io sono in modalità
stretta e dice che la parola è riservata
quindi il mio consiglio è usare sempre
lo strict nel vostro codice lo mettete
qui all'inizio e andate tranquilli
quindi vedete subito e se ci sono errori
che potrebbero passare inosservati
in modalità sloppy con questo è
tutto ci sentiamo la prossima ciao
File del video: