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;
Uppvuxen till makten av
var a = 3,
b = 15;
b **= a;
b
blir nu 3375
Detta är funktionellt samma som
b = b ** a;