Ricerca…


Sintassi

  • var foo [= value [, foo2 [, foo3 ... [, fooN]]]];
  • lascia bar [= valore [, bar2 [, foo3 ... [, barN]]]];
  • const baz = value [, baz2 = value2 [, ... [, bazN = valueN]]];

Osservazioni

Guarda anche:

Riassegnazione delle costanti

Non è possibile riassegnare le costanti.

const foo = "bar";
foo = "hello";

stampe:

Uncaught TypeError: Assignment to constant.

Modifica delle costanti

La dichiarazione di una variabile const impedisce solo che il suo valore venga sostituito da un nuovo valore. const non pone alcuna restrizione sullo stato interno di un oggetto. L'esempio seguente mostra che un valore di una proprietà di un oggetto const può essere modificato e anche le nuove proprietà possono essere aggiunte, poiché l'oggetto assegnato a una person viene modificato, ma non sostituito .

const person = { 
    name: "John" 
};
console.log('The name of the person is', person.name);

person.name = "Steve";
console.log('The name of the person is', person.name);

person.surname = "Fox";
console.log('The name of the person is', person.name, 'and the surname is', person.surname);

Risultato:

The name of the person is John
The name of the person is Steve
The name of the person is Steve and the surname is Fox

In questo esempio abbiamo creato un oggetto costante chiamato person e abbiamo riassegnato la proprietà person.name e creato una nuova proprietà person.surname .

Dichiarazione e inizializzazione delle costanti

È possibile inizializzare una costante utilizzando la parola chiave const .

const foo = 100;
const bar = false;
const person = { name: "John" };
const fun = function () = { /* ... */ };
const arrowFun = () => /* ... */ ;

Importante
Devi dichiarare e inizializzare una costante nella stessa dichiarazione.

Dichiarazione

Esistono quattro modi principali per dichiarare una variabile in JavaScript: utilizzando le variabili var , let o const , o senza una parola chiave (dichiarazione "nuda"). Il metodo utilizzato determina l' ambito risultante della variabile o la riassegnabilità nel caso di const .

  • La parola chiave var crea una variabile dell'ambito della funzione.
  • La parola chiave let crea una variabile a ambito di blocco.
  • La parola chiave const crea una variabile a ambito di blocco che non può essere riassegnata.
  • Una dichiarazione nuda crea una variabile globale.
var a = 'foo';    // Function-scope
let b = 'foo';    // Block-scope
const c = 'foo';  // Block-scope & immutable reference

Tieni presente che non puoi dichiarare le costanti senza inizializzarle contemporaneamente.

const foo; // "Uncaught SyntaxError: Missing initializer in const declaration"

(Un esempio di dichiarazione di variabile senza parole chiave non è incluso sopra per motivi tecnici. Continua a leggere per vedere un esempio.)

Tipi di dati

Le variabili JavaScript possono contenere molti tipi di dati: numeri, stringhe, matrici, oggetti e altro:

// Number
var length = 16;

// String
var message = "Hello, World!"; 

// Array
var carNames = ['Chevrolet', 'Nissan', 'BMW']; 

// Object
var person = {
    firstName: "John",
    lastName: "Doe"
}; 

JavaScript ha tipi dinamici. Ciò significa che la stessa variabile può essere utilizzata come tipi diversi:

var a;              // a is undefined
var a = 5;          // a is a Number
var a = "John";     // a is a String

Non definito

La variabile dichiarata senza un valore avrà il valore undefined

var a;

console.log(a); // logs: undefined

Cercando di recuperare il valore delle variabili non dichiarate si ottiene un ReferenceError. Tuttavia, sia il tipo di variabili non dichiarate che unitializzate è "indefinito":

var a;
console.log(typeof a === "undefined"); // logs: true
console.log(typeof variableDoesNotExist === "undefined"); // logs: true

assegnazione

Per assegnare un valore a una variabile dichiarata in precedenza, utilizzare l'operatore di assegnazione, = :

a = 6;
b = "Foo";

In alternativa alla dichiarazione e all'assegnazione indipendenti, è possibile eseguire entrambe le fasi in un'unica istruzione:

var a = 6;
let b = "Foo";

È in questa sintassi che le variabili globali possono essere dichiarate senza una parola chiave; se si dovesse dichiarare una variabile nuda senza un incarico immediatamente successivo, l'interprete non sarebbe in grado di differenziare le dichiarazioni globali a; dai riferimenti alle variabili a; .

c = 5;
c = "Now the value is a String.";
myNewGlobal;    // ReferenceError

Si noti, tuttavia, che la sintassi precedente è generalmente scoraggiata e non è conforme alla modalità rigorosa. Questo per evitare lo scenario in cui un programmatore rilascia inavvertitamente una parola chiave let o var dalla propria istruzione, creando accidentalmente una variabile nello spazio dei nomi globale senza rendersene conto. Questo può inquinare lo spazio dei nomi globale e il conflitto con le librerie e il corretto funzionamento di uno script. Pertanto, le variabili globali dovrebbero essere dichiarate e inizializzate usando la parola chiave var nel contesto dell'oggetto window, in modo che l'intento sia esplicitamente indicato.

Inoltre, le variabili possono essere dichiarate diverse alla volta separando ciascuna dichiarazione (e l'assegnazione facoltativa del valore) con una virgola. Usando questa sintassi, var e let le parole chiave devono essere utilizzate solo una volta all'inizio di ogni istruzione.

globalA = "1", globalB = "2";
let x, y = 5;
var person = 'John Doe',
    foo,
    age = 14,
    date = new Date(); 

Si noti nello snippet di codice precedente che l'ordine in cui si verificano le espressioni di dichiarazione e assegnazione ( var a, b, c = 2, d; ) non ha importanza. Puoi mescolare liberamente i due.

La dichiarazione di funzione crea anche delle variabili.

Operazioni matematiche e incarichi

Incremento di

var a = 9,  
b = 3;  
b += a;  

b ora sarà 12

Questo è funzionalmente lo stesso di

b = b + a; 

Decremento di

var a = 9,  
b = 3;  
b -= a;  

b ora sarà 6

Questo è funzionalmente lo stesso di

b = b - a;  

Moltiplicato per

var a = 5,  
b = 3;  
b *= a;  

b ora sarà 15

Questo è funzionalmente lo stesso di

b = b * a;  

Dividi per

var a = 3,  
b = 15;  
b /= a;  

b ora sarà 5

Questo è funzionalmente lo stesso di

b = b / a;  

7

Alza al potere di

var a = 3,  
b = 15;  
b **= a;  

b sarà ora 3375

Questo è funzionalmente lo stesso di

b = b ** a;  


Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow