Zoeken…


Syntaxis

  • var foo [= waarde [, foo2 [, foo3 ... [, fooN]]]];
  • let bar [= waarde [, bar2 [, foo3 ... [, barN]]]];
  • const baz = waarde [, baz2 = waarde2 [, ... [, bazN = waardeN]]];

Opmerkingen

Zie ook:

Constanten opnieuw toewijzen

Je kunt constanten niet opnieuw toewijzen.

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

prints:

Uncaught TypeError: Assignment to constant.

Constanten wijzigen

Het declareren van een variabele const voorkomt alleen dat zijn waarde wordt vervangen door een nieuwe waarde. const stelt geen beperkingen aan de interne status van een object. Het volgende voorbeeld laat zien dat een waarde van een eigenschap van een const object kan worden gewijzigd en zelfs nieuwe eigenschappen kunnen worden toegevoegd, omdat het object dat is toegewezen aan person is gewijzigd, maar niet is vervangen .

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

Resultaat:

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 dit voorbeeld hebben we een constant object met de naam person en hebben we de eigenschap person.name opnieuw toegewezen en de nieuwe eigenschap person.surname .

Constanten declareren en initialiseren

U kunt een constante initialiseren met het sleutelwoord const .

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

Belangrijk
U moet een constante in dezelfde verklaring declareren en initialiseren.

Verklaring

Er zijn vier principe manieren om een variabele in JavaScript verklaren: met behulp van de var , let of const trefwoorden of zonder zoekterm helemaal ( "kale" verklaring). De gebruikte methode bepaalt het resulterende bereik van de variabele, of de toewijsbaarheid in het geval van const .

  • Het var trefwoord maakt een functiebereikvariabele.
  • Het let trefwoord maakt een block-scope-variabele.
  • Het sleutelwoord const maakt een block-scope variabele die niet opnieuw kan worden toegewezen.
  • Een kale verklaring creëert een globale variabele.
var a = 'foo';    // Function-scope
let b = 'foo';    // Block-scope
const c = 'foo';  // Block-scope & immutable reference

Houd er rekening mee dat u constanten niet kunt declareren zonder ze tegelijkertijd te initialiseren.

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

(Om technische redenen is hierboven geen voorbeeld opgenomen van een verklaring zonder sleutelwoordvariabele. Lees verder om een voorbeeld te bekijken.)

Gegevenstypen

JavaScript-variabelen kunnen veel gegevenstypen bevatten: getallen, tekenreeksen, arrays, objecten en meer:

// Number
var length = 16;

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

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

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

JavaScript heeft dynamische typen. Dit betekent dat dezelfde variabele als verschillende typen kan worden gebruikt:

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

onbepaald

Opgegeven variabele zonder waarde heeft de waarde undefined

var a;

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

Als u de waarde van niet-aangegeven variabelen probeert op te halen, krijgt u een ReferenceError. Zowel het type niet-aangegeven als geunialiseerde variabelen is echter "niet-gedefinieerd":

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

toewijzing

Gebruik de toewijzingsoperator om een waarde toe te kennen aan een eerder gedeclareerde variabele, = :

a = 6;
b = "Foo";

Als alternatief voor onafhankelijke aangifte en toewijzing is het mogelijk om beide stappen in één verklaring uit te voeren:

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

Het is in deze syntaxis dat globale variabelen zonder een sleutelwoord kunnen worden gedeclareerd; als men onmiddellijk na het woord een kale variabele zonder een opdracht zou declareren, zou de tolk geen onderscheid kunnen maken tussen globale verklaringen a; van verwijzingen naar variabelen a; .

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

Merk echter op dat de bovenstaande syntaxis over het algemeen wordt afgeraden en niet voldoet aan de strikte modus. Dit is om het scenario te vermijden waarin een programmeur per ongeluk een let of var sleutelwoord uit zijn instructie laat vallen en per ongeluk een variabele in de globale naamruimte maakt zonder het te beseffen. Dit kan de globale naamruimte en het conflict met bibliotheken en de goede werking van een script vervuilen. Daarom moeten globale variabelen worden gedeclareerd en geïnitialiseerd met het sleutelwoord var in de context van het vensterobject, zodat de intentie expliciet wordt vermeld.

Bovendien kunnen variabelen meerdere tegelijk worden gedeclareerd door elke verklaring (en optionele waardetoekenning) te scheiden met een komma. Met deze syntaxis hoeven de vari- en let-sleutelwoorden slechts eenmaal aan het begin van elke instructie te worden gebruikt.

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

Merk in het vorige codefragment op dat de volgorde waarin expressies en toewijzingsuitdrukkingen voorkomen ( var a, b, c = 2, d; ) er niet toe doet. Je mag de twee vrijelijk mengen.

Functiedeclaratie maakt ook effectief variabelen.

Wiskundige bewerkingen en opdrachten

Verhogen met

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

b wordt nu 12

Dit is functioneel hetzelfde als

b = b + a; 

Daling door

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

b wordt nu 6

Dit is functioneel hetzelfde als

b = b - a;  

Vermenigvuldigen met

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

b wordt nu 15

Dit is functioneel hetzelfde als

b = b * a;  

Delen door

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

b wordt nu 5

Dit is functioneel hetzelfde als

b = b / a;  

7

Opgeheven tot de kracht van

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

b wordt nu 3375

Dit is functioneel hetzelfde als

b = b ** a;  


Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow