Esercitazione JS

JS CASA JS Introduzione JS Dove si va Uscita JS Dichiarazioni JS Sintassi JS Commenti JS Variabili JS JS Let JS Cost Operatori JS JS aritmetica Assegnazione JS Tipi di dati JS Funzioni JS Oggetti JS Eventi JS Corde JS Metodi di stringa JS Ricerca di stringhe JS Modelli di stringhe JS Numeri JS Metodi numerici JS Matrici JS Metodi array JS Ordinamento matrice JS Iterazione dell'array JS Cost. array JS Date JS Formati data JS Metodi di acquisizione della data JS Metodi di impostazione della data JS JS matematica JS Casuale JS booleani Confronti JS Condizioni JS JS Switch Ciclo JS per JS Loop per In Ciclo JS per di JS Loop mentre JS Break Iterabili JS Insiemi JS Mappe JS Tipo JS Conversione del tipo JS JS bit a bit JS RegExp Errori JS Ambito JS JS sollevamento Modalità rigorosa JS JS questa parola chiave Funzione freccia JS Classi JS JS JSON Debug JS Guida allo stile JS Migliori Pratiche JS Errori di JS Prestazioni JS Parole riservate JS

Versioni JS

Versioni JS JS 2009 (ES5) JS 2015 (ES6) JS 2016 JS 2017 JS 2018 JS IE / Edge Storia di JS

Oggetti JS

Definizioni di oggetti Proprietà dell'oggetto Metodi dell'oggetto Visualizzazione di oggetti Accessori per oggetti Costruttori di oggetti Prototipi di oggetti Iterabili di oggetti Insiemi di oggetti Mappe degli oggetti Riferimento all'oggetto

Funzioni JS

Definizioni delle funzioni Parametri di funzione Invocazione di funzione Chiamata di funzione Funzione Applica Chiusure di funzioni

Classi JS

Introduzione alla classe Eredità di classe Classe statica

JS Async

Richiamate JS JS asincrono JS Promesse JS Async/Attendere

JS HTML DOM

DOM Introduzione Metodi DOM Documento DOM Elementi DOM DOM HTML Moduli DOM DOM CSS Animazioni DOM Eventi DOM Ascoltatore di eventi DOM Navigazione DOM Nodi DOM Collezioni DOM Elenchi di nodi DOM

Distinta base del browser JS

Finestra JS Schermo JS Posizione JS Storia di JS Navigatore JS Avviso popup JS JS tempismo Biscotti JS

API Web JS

Introduzione all'API Web API dei moduli Web API Cronologia web API di archiviazione Web API Web Worker API di recupero Web API di geolocalizzazione web

JS AJAX

Introduzione all'Ajax AJAX XMLHttp Richiesta AJAX Risposta dell'AJAX File XML AJAX AJAX PHP AJAX ASP Database AJAX Applicazioni AJAX Esempi AJAX

JS JSON

Introduzione JSON Sintassi JSON JSON contro XML Tipi di dati JSON Analisi JSON JSON Stringify Oggetti JSON Matrici JSON Server JSON JSON PHP JSON HTML JSON JSONP

JS vs jQuery

Selettori jQuery jQuery HTML jQuery CSS jQuery DOM

Grafica JS

Grafica JS Tela JS JS Plotly JS Chart.js Grafico di Google JS JS D3.js

Esempi JS

Esempi JS JS HTML DOM Input HTML JS Oggetti HTML JS Eventi HTML JS Browser JS Editore JS Esercizi JS Quiz J.S Certificato JS

Riferimenti JS

Oggetti JavaScript Oggetti HTML DOM


JavaScript Let

La letparola chiave è stata introdotta in ES6 (2015) .

Le variabili definite con letnon possono essere dichiarate nuovamente.

Le variabili definite con letdevono essere dichiarate prima dell'uso.

Le variabili definite con lethanno Block Scope.

Non può essere ridichiarato

Le variabili definite con letnon possono essere dichiarate nuovamente .

Non è possibile dichiarare nuovamente una variabile per errore.

Con lette non puoi fare questo:

Esempio

let x = "John Doe";

let x = 0;

// SyntaxError: 'x' has already been declared

Con varte puoi:

Esempio

var x = "John Doe";

var x = 0;

Ambito di blocco

Prima di ES6 (2015), JavaScript aveva solo Global Scope e Function Scope .

ES6 ha introdotto due nuove importanti parole chiave JavaScript: lete const.

Queste due parole chiave forniscono Block Scope in JavaScript.

Non è possibile accedere alle variabili dichiarate all'interno di un blocco { } dall'esterno del blocco:

Esempio

{
  let x = 2;
}
// x can NOT be used here

Le variabili dichiarate con la varparola chiave NON possono avere un ambito di blocco.

È possibile accedere alle variabili dichiarate all'interno di un blocco { } dall'esterno del blocco.

Esempio

{
  var x = 2;
}
// x CAN be used here

Ridichiarazione di variabili

Ridichiarare una variabile utilizzando la varparola chiave può creare problemi.

Ridichiarare una variabile all'interno di un blocco ridichiarerà anche la variabile all'esterno del blocco:

Esempio

var x = 10;
// Here x is 10

{
var x = 2;
// Here x is 2
}

// Here x is 2

Ridichiarare una variabile utilizzando la letparola chiave può risolvere questo problema.

Ridichiarare una variabile all'interno di un blocco non ridichiarerà la variabile al di fuori del blocco:

Esempio

let x = 10;
// Here x is 10

{
let x = 2;
// Here x is 2
}

// Here x is 10

Supporto browser

La letparola chiave non è completamente supportata in Internet Explorer 11 o versioni precedenti.

La tabella seguente definisce le prime versioni del browser con pieno supporto per la letparola chiave:

Chrome 49 Edge 12 Firefox 44 Safari 11 Opera 36
Mar, 2016 Jul, 2015 Jan, 2015 Sep, 2017 Mar, 2016


Ridichiarare

Ridichiarare una variabile JavaScript con varè consentita ovunque in un programma:

Esempio

var x = 2;
// Now x is 2

var x = 3;
// Now x is 3

Con let, NON è consentito dichiarare nuovamente una variabile nello stesso blocco:

Esempio

var x = 2;    // Allowed
let x = 3;    // Not allowed

{
let x = 2;    // Allowed
let x = 3     // Not allowed
}

{
let x = 2;    // Allowed
var x = 3     // Not allowed
}

Ridichiarare una variabile con let, in un altro blocco, È consentito:

Esempio

let x = 2;    // Allowed

{
let x = 3;    // Allowed
}

{
let x = 4;    // Allowed
}

Facciamo sollevamento

Le variabili definite con varvengono sollevate in alto e possono essere inizializzate in qualsiasi momento.

Significato: puoi usare la variabile prima che venga dichiarata:

Esempio

Questo va bene:

carName = "Volvo";
var carName;

Se vuoi saperne di più sul sollevamento, consulta il capitolo JavaScript Hoisting .

Anche le variabili definite con letvengono sollevate nella parte superiore del blocco, ma non inizializzate.

Significato: l'utilizzo di una letvariabile prima che venga dichiarata risulterà in un ReferenceError:

Esempio

carName = "Saab";
let carName = "Volvo";