JavaVariabile script: dichiara, assegna un valore con esempio
⚡ Riepilogo intelligente
JavaLe variabili di script memorizzano valori come nomi e numeri, oppure il risultato di un'espressione. Dichiarandone una con `var`, `let` o `const`, si riserva uno spazio denominato che il resto dello script può leggere e aggiornare.
Le variabili vengono utilizzate per memorizzare valori (nome = "John") o espressioni (somma = x + y). Ogni valore che uno script conserva per dopo — un nome utente, un totale progressivo, un flag sì o no — risiede in una variabile, quindi dichiararle e nominarle bene è la prima abilità da acquisire in JavaCopione.
Dichiara variabili in JavaCopione
Prima di utilizzare una variabile, è necessario dichiararla. Per dichiarare una variabile, si utilizza la parola chiave `var` in questo modo:
var name;
La sola dichiarazione crea il nome e nient'altro. A questo punto la variabile esiste ma ha il valore speciale undefined, perché non le è stato ancora assegnato alcun valore.
⚠️ Nota sulla versione: var è la parola chiave di dichiarazione originale e viene ancora eseguita in ogni browser. ES6 (2015) aggiunto lasciare and const, che sono le parole chiave moderne JavaUtilizzo dello script. Entrambi vengono confrontati con var più avanti in questa pagina.
Assegnare un valore alla variabile
È possibile assegnare un valore alla variabile durante la dichiarazione della variabile o dopo aver dichiarato la variabile.
var name = "John";
OR
var name; name = "John";
Entrambe le forme terminano con lo stesso risultato. Il singolo segno di uguale è il operatore di assegnazione: copia il valore alla sua destra nella variabile alla sua sinistra. Non è un test di uguaglianza, che si scrive == o === e appartiene a dichiarazioni condizionali.
Variabili di denominazione
Sebbene sia possibile assegnare alle variabili nomi a piacere, è buona norma di programmazione utilizzare nomi descrittivi e significativi. Inoltre, i nomi delle variabili devono iniziare con una lettera e sono sensibili alle maiuscole e minuscole. Pertanto, le variabili studentname e studentName sono diverse perché la lettera "n" nel nome è diversa (n e N).
Quattro regole stabiliscono se un nome è valido o meno:
- Il primo carattere deve essere una lettera, un simbolo del dollaro o un trattino basso, mai una cifra.
- Dopo il primo carattere, sono ammessi lettere, cifre, simboli del dollaro e trattini bassi.
- Gli spazi non sono ammessi, motivo per cui un'idea composta da due parole viene unita come studentName anziché essere lasciata come due parole separate.
- Le parole riservate come var, let, const, class e return non possono essere riutilizzate come nomi.
Per convenzione JavaI nomi degli script utilizzano la notazione camelCase, quindi la prima parola è minuscola e ogni parola successiva inizia con una lettera maiuscola: firstName, totalPrice, isLoggedIn.
Lo script seguente dichiara due variabili, applica ad esse i cinque operatori aritmetici e scrive ogni risultato sulla pagina. Provate anche voi:
<html>
<head>
<title>Variables!!!</title>
<script type="text/javascript">
var one = 22;
var two = 3;
var add = one + two;
var minus = one - two;
var multiply = one * two;
var divide = one/two;
document.write("First No: = " + one + "<br />Second No: = " + two + " <br />");
document.write(one + " + " + two + " = " + add + "<br/>");
document.write(one + " - " + two + " = " + minus + "<br/>");
document.write(one + " * " + two + " = " + multiply + "<br/>");
document.write(one + " / " + two + " = " + divide + "<br/>");
</script>
</head>
<body>
</body>
</html>
var vs let vs const in Modern JavaCopione
Esisteva solo var quando JavaLo script è stato scritto inizialmente e presenta due caratteristiche che sorprendono i principianti: può essere ridichiarato silenziosamente e ignora i limiti di blocco. Sono state aggiunte le parole chiave `let` e `const` per risolvere entrambi i problemi. La tabella seguente mette a confronto le tre parole chiave.
| Comportamento | var | lasciare | const |
|---|---|---|---|
| Obbiettivo | Funzione completa | Blocco di delimitazione | Blocco di delimitazione |
| Può essere riassegnato | Si | Si | Non |
| Può essere ridichiarato nello stesso ambito | Si | Non | Non |
| Valore richiesto nella riga di dichiarazione | Non | Non | Si |
| Leggere prima della sua dichiarazione | Restituisce undefined | Errore di riferimento | Errore di riferimento |
Una semplice abitudine copre quasi tutti i casi: allungare la mano const prima, passare a lasciare nel momento in cui un valore deve effettivamente cambiare, come un contatore all'interno di uno dei JavaCicli di scripte mantieni la variabile per leggere il vecchio codice invece di scriverne di nuovo.
Portata variabile e sollevamento in JavaCopione
L'ambito di visibilità di una variabile determina quali parti di uno script possono accedervi. Una dichiarazione `var` appartiene alla funzione che la contiene, quindi non viene visualizzata all'interno di alcun blocco `if` o `for` di tale funzione. Una dichiarazione `let` o `const` appartiene alla coppia di parentesi graffe che la racchiudono e scompare al di fuori di esse.
function demo() { if (true) { var wide = "visible throughout demo()"; let narrow = "visible only inside these braces"; } console.log(wide); console.log(narrow); }
Il primo console.log stampa la sua stringa. Il secondo genera un ReferenceError, perché narrow non esiste più una volta terminato il blocco if.
sollevamento è la seconda parte della storia. JavaLo script registra ogni dichiarazione in un ambito prima di eseguire una singola riga di tale ambito. Un nome di variabile viene registrato e impostato su undefined, quindi leggerlo in anticipo è legale ma inutile. Un nome let o const viene registrato senza un valore e lo spazio tra la parte superiore del blocco e la riga di dichiarazione è chiamato zona morta temporale.
console.log(a); var a = 1; console.log(b); let b = 2;
La prima riga stampa undefined. La terza riga si interrompe con "Cannot access 'b' before initialization" - l'errore che rende let più sicuro di var, perché indica l'errore reale invece di nasconderlo.
Errori comuni nella dichiarazione JavaVariabili di script
Cinque messaggi rappresentano la maggior parte dell'output della console che i principianti vedono quando imparano a usare le variabili. Ognuno di essi indica una causa specifica, quindi la soluzione di solito consiste in una sola riga di codice.
| Messaggio della console | Causare | Fissare |
|---|---|---|
| SyntaxError: l'identificatore 'x' è già stato dichiarato | let o const usati due volte per lo stesso nome in un blocco | Riutilizza la variabile esistente oppure rinomina la seconda |
| TypeError: assegnazione a variabile costante | A una costante è stato assegnato un nuovo valore | Dichiaralo con let se il valore deve cambiare |
| ReferenceError: Impossibile accedere a 'x' prima dell'inizializzazione | Un valore let o const è stato letto all'interno della zona morta temporale. | Spostare la lettura sotto la riga di dichiarazione |
| ReferenceError: x non è definito | Il nome non è mai stato dichiarato, oppure è stato scritto in modo errato. | Dichiaralo, oppure correggi l'ortografia e le maiuscole/minuscole |
| Il valore indefinito compare dove era previsto un valore | La variabile è stata dichiarata ma non le è mai stato assegnato alcun valore. | Assegna un valore prima della prima lettura |
L'aggiunta di "use strict" all'inizio di un file trasforma la versione silenziosa del quarto caso, ovvero l'assegnazione a un nome che non è mai stato dichiarato, in un errore visibile, motivo per cui è necessario in ogni nuovo script. Le stesse regole sulle variabili vengono trasferite senza modifiche a array, oggettie codice lato server scritto per Node.js.
