Sök…


Syntax

  • var foo [= värde [, foo2 [, foo3 ... [, fooN]]]];
  • låt stapel [= värde [, bar2 [, foo3 ... [, barN]]]];
  • const baz = värde [, baz2 = värde2 [, ... [, bazN = värdeN]]];

Anmärkningar

Se även:

Omfördela konstanter

Du kan inte tilldela konstanter.

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

Grafik:

Uncaught TypeError: Assignment to constant.

Ändra konstanter

Att förklara en variabel const förhindrar endast att dess värde ersätts av ett nytt värde. const sätter inga begränsningar för ett objekts interna tillstånd. Följande exempel visar att ett värde för en egenskap hos ett const objekt kan ändras och till och med nya egenskaper kan läggas till eftersom objektet som tilldelas en person ändras, men inte ersätts .

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);

Resultat:

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

I det här exemplet har vi skapat konstant objekt som heter person och vi har tilldelat egenskapen person.name och skapat en ny person.surname .

Förklara och initiera konstanter

Du kan initiera en konstant med hjälp av nyckelordet const .

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

Viktig
Du måste förklara och initiera en konstant i samma uttalande.

Deklaration

Det finns fyra principiella sätt att förklara en variabel i JavaScript: använda var , let eller const nyckelord, eller utan ett nyckelord alls ("bara" deklaration). Den använda metoden bestämmer den resulterande räckvidden för variabeln, eller omfördelningsbarhet i fallet med const .

  • Det var nyckelordet skapar en funktionsomfångsvariabel.
  • let nyckelordet skapar en block-scope-variabel.
  • const nyckelordet skapar en block-scope-variabel som inte kan tilldelas om.
  • En bara deklaration skapar en global variabel.
var a = 'foo';    // Function-scope
let b = 'foo';    // Block-scope
const c = 'foo';  // Block-scope & immutable reference

Tänk på att du inte kan förklara konstanter utan att initialisera dem samtidigt.

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

(Ett exempel på sökordslös variabel deklaration ingår inte ovan av tekniska skäl. Fortsätt läsa för att se ett exempel.)

Datatyper

JavaScript-variabler kan innehålla många datatyper: siffror, strängar, matriser, objekt och mer:

// Number
var length = 16;

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

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

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

JavaScript har dynamiska typer. Detta betyder att samma variabel kan användas som olika typer:

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

Odefinierad

Deklarerad variabel utan ett värde kommer att undefined värdet

var a;

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

Att försöka hämta värdet på odeklarerade variabler resulterar i en ReferenceError. Men både typen av odeklarerade och enhetliga variabler är "odefinierad":

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

Uppdrag

För att tilldela ett värde till en tidigare deklarerad variabel använder du tilldelningsoperatören, = :

a = 6;
b = "Foo";

Som ett alternativ till oberoende deklaration och tilldelning är det möjligt att utföra båda stegen i ett uttalande:

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

Det är i denna syntax som globala variabler kan deklareras utan ett nyckelord; om man skulle förklara en bara variabel utan ett tilldelning omedelbart efterord skulle tolkaren inte kunna skilja globala deklarationer a; från referenser till variabler a; .

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

Observera dock att ovanstående syntax generellt är avskräckt och inte är strikt-läge kompatibel. Detta för att undvika scenario där en programmerare faller oavsiktligt en let eller var nyckelordet från sitt uttalande, oavsiktligt skapa en variabel i den globala namnrymden utan att inse det. Detta kan förorena det globala namnområdet och konflikten med bibliotek och ett skript fungerar korrekt. Därför bör globala variabler deklareras och initialiseras med var nyckelordet i samband med fönsterobjektet, i stället så att avsikten uttryckligen anges.

Dessutom kan variabler deklareras flera i taget genom att separera varje deklaration (och valfri tilldelning av värde) med ett komma. Med hjälp av denna syntax behöver nyckelorden var och låt bara användas en gång i början av varje påstående.

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

Observera i föregående kodavsnitt att ordningen i vilken deklarations- och tilldelningsuttryck förekommer ( var a, b, c = 2, d; ) spelar ingen roll. Du kan fritt blanda de två.

Funktionsdeklaration skapar också variabler effektivt.

Matematiska operationer och uppdrag

Ökning av

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

b blir nu 12

Detta är funktionellt samma som

b = b + a; 

Dekrement av

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

b blir nu 6

Detta är funktionellt samma som

b = b - a;  

Multiplicera med

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

b blir nu 15

Detta är funktionellt samma som

b = b * a;  

Dela med

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

b blir nu 5

Detta är funktionellt samma som

b = b / a;  

7

Uppvuxen till makten av

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

b blir nu 3375

Detta är funktionellt samma som

b = b ** a;  


Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow