Suche…


Syntax

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

Bemerkungen

Siehe auch:

Konstanten neu zuordnen

Konstanten können nicht neu zugewiesen werden.

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

Drucke:

Uncaught TypeError: Assignment to constant.

Konstanten ändern

Das Deklarieren eine Variablen const nur verhindert , dass sein Wert aus durch einen neuen Wert ersetzt. const beschränkt den internen Zustand eines Objekts nicht. Das folgende Beispiel zeigt, dass ein Wert einer Eigenschaft eines const Objekts geändert werden kann und sogar neue Eigenschaften hinzugefügt werden können, da das Objekt, das der person zugewiesen ist, geändert, jedoch nicht ersetzt wird .

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

Ergebnis:

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 diesem Beispiel haben wir ein konstantes Objekt namens person und die person.name Eigenschaft neu zugewiesen und die neue person.surname .

Konstanten deklarieren und initialisieren

Sie können eine Konstante mit dem Schlüsselwort const initialisieren.

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

Wichtig
Sie müssen eine Konstante in derselben Anweisung deklarieren und initialisieren.

Erklärung

Es gibt vier grundlegende Möglichkeiten, eine Variable in JavaScript zu deklarieren: Verwenden Sie die Schlüsselwörter var , let oder const oder let oder gar ohne Schlüsselwort ("bare" -Deklaration). Die verwendete Methode bestimmt den sich ergebenden Gültigkeitsbereich der Variablen oder die Neuzuordnung von const .

  • Das Schlüsselwort var erstellt eine Funktionsbereichsvariable.
  • Das let Schlüsselwort erstellt eine Blockbereichsvariable.
  • Das Schlüsselwort const erstellt eine Blockbereichsvariable, die nicht erneut zugewiesen werden kann.
  • Eine bloße Deklaration erstellt eine globale Variable.
var a = 'foo';    // Function-scope
let b = 'foo';    // Block-scope
const c = 'foo';  // Block-scope & immutable reference

Denken Sie daran, dass Sie Konstanten nicht deklarieren können, ohne sie gleichzeitig zu initialisieren.

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

(Ein Beispiel für die Variablendeklaration ohne Schlüsselwörter ist oben aus technischen Gründen nicht enthalten. Lesen Sie weiter, um ein Beispiel zu sehen.)

Datentypen

JavaScript-Variablen können viele Datentypen enthalten: Zahlen, Strings, Arrays, Objekte und mehr:

// Number
var length = 16;

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

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

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

JavaScript hat dynamische Typen. Das bedeutet, dass dieselbe Variable als verschiedene Typen verwendet werden kann:

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

Nicht definiert

Deklarierte Variablen ohne Wert haben den Wert undefined

var a;

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

Der Versuch, den Wert nicht deklarierter Variablen abzurufen, führt zu einem ReferenceError. Der Typ der nicht deklarierten und der unitialisierten Variablen ist jedoch "undefiniert":

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

Zuordnung

Um einer zuvor deklarierten Variablen einen Wert zuzuweisen, verwenden Sie den Zuweisungsoperator = :

a = 6;
b = "Foo";

Alternativ zur unabhängigen Deklaration und Zuweisung können beide Schritte in einer Anweisung ausgeführt werden:

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

In dieser Syntax können globale Variablen ohne ein Schlüsselwort deklariert werden. Wenn man eine leere Variable unmittelbar nach dem Zuweisen ohne Zuweisung deklariert, ist der Interpreter nicht in der Lage, globale Deklarationen von a; zu unterscheiden a; von Verweisen auf Variablen a; .

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

Beachten Sie jedoch, dass die obige Syntax generell nicht empfohlen wird und nicht dem strengen Modus entspricht. Dadurch soll das Szenario vermieden werden, in dem ein Programmierer versehentlich ein let oder var Schlüsselwort aus seiner Anweisung löscht und versehentlich eine Variable im globalen Namespace erstellt, ohne es zu merken. Dies kann den globalen Namespace verschmutzen, Konflikte mit Bibliotheken und das ordnungsgemäße Funktionieren eines Skripts verursachen. Daher sollten globale Variablen mit dem Schlüsselwort var im Kontext des Fensterobjekts deklariert und initialisiert werden, stattdessen wird die Absicht explizit angegeben.

Außerdem können Variablen mehrmals deklariert werden, indem jede Deklaration (und optionale Wertzuweisung) durch ein Komma getrennt wird. Bei Verwendung dieser Syntax müssen die Schlüsselwörter var und let nur einmal am Anfang jeder Anweisung verwendet werden.

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

Beachten Sie im vorhergehenden Codeausschnitt, dass die Reihenfolge, in der Deklarations- und Zuweisungsausdrücke ( var a, b, c = 2, d; ) vorkommen, keine Rolle spielt. Sie können die beiden frei mischen.

Die Funktionsdeklaration erstellt auch effektiv Variablen.

Mathematische Operationen und Zuordnung

Inkrement um

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

b ist jetzt 12

Dies ist funktional identisch mit

b = b + a; 

Dekrement um

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

b ist jetzt 6

Dies ist funktional identisch mit

b = b - a;  

Mal

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

b ist jetzt 15

Dies ist funktional identisch mit

b = b * a;  

Teilen durch

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

b ist jetzt 5

Dies ist funktional identisch mit

b = b / a;  

7

Zur Macht von erhoben

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

b wird jetzt 3375 sein

Dies ist funktional identisch mit

b = b ** a;  


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow