389 Stimmen

Const in JavaScript: wann es zu verwenden ist und ist es notwendig?

Ich bin kürzlich auf das const Schlüsselwort in JavaScript gestoßen. Soweit ich sehen kann, wird es verwendet, um unveränderliche Variablen zu erstellen, und ich habe getestet, um sicherzustellen, dass es nicht neu definiert werden kann (in Node.js):

const x = 'const';
const x = 'not-const';

// Wird einen Fehler liefern: 'Konstante 'x' wurde bereits definiert'

Ich weiß, dass es noch nicht in allen Browsern standardisiert ist - aber ich bin nur am Kontext von Node.js V8 interessiert, und ich habe bemerkt, dass bestimmte Entwickler / Projekte es stark bevorzugen, obwohl das var-Schlüsselwort den gleichen Effekt erzielen könnte.

  • Wann ist es angemessen, const anstelle von var zu verwenden?
  • Sollte es jedes Mal verwendet werden, wenn eine Variable deklariert wird, die nicht neu zugewiesen wird?
  • Macht es tatsächlich einen Unterschied, ob var anstelle von const oder umgekehrt verwendet wird?

18voto

Srikrushna Punkte 3387

var: Deklariere eine Variable. Die Initialisierung des Werts ist optional.

let: Deklariere eine lokale Variable mit Blockscope.

const: Deklariere eine schreibgeschützte benannte Konstante.

Beispiel:

var a;
a = 1;
a = 2; // Neuzuweisung möglich
var a = 3; // Neu deklarieren
console.log(a); // 3

let b;
b = 5;
b = 6; // Neuzuweisung möglich
// let b = 7; // Neu deklarieren nicht möglich
console.log(b);

// const c;
// c = 9;    // Initialisierung und Deklarierung am gleichen Ort
const c = 9;
// const c = 9; // Neu deklarieren und Initialisierung nicht möglich
console.log(c); // 9
// HINWEIS: Konstanten können mit Groß- oder Kleinschreibung deklariert werden, aber eine gängige Konvention ist es, alle Großbuchstaben zu verwenden.

11voto

Edgar Griñant Punkte 589

Du hast großartige Antworten, aber lass es uns einfach halten.

const sollte verwendet werden, wenn Sie eine definierte Konstante haben (zu lesen als: es wird sich während der Programmausführung nicht ändern).

Zum Beispiel:

const pi = 3.1415926535

Wenn Sie der Meinung sind, dass es sich um etwas handelt, das bei späterer Ausführung geändert werden kann, verwenden Sie ein var.

Der praktische Unterschied, basierend auf dem Beispiel, ist, dass Sie bei const immer davon ausgehen werden, dass pi 3,14 [...] ist, es ist eine Tatsache.

Wenn Sie es als var definieren, könnte es 3,14 [...] oder auch nicht sein.

Für eine mehr technische Antwort ist Tibos' akademisch richtig.

7voto

Melbz Punkte 512

In meiner Erfahrung verwende ich const, wenn ich etwas festlegen möchte, das ich möglicherweise später ändern möchte, ohne im Code nach fest codierten Bits suchen zu müssen, z.B. einen Dateipfad oder einen Servernamen.

Der Fehler in Ihrem Test liegt jedoch woanders. Sie versuchen eine weitere Variable namens x zu erstellen, und dies wäre ein genauerer Test:

const x = 'const';
x = 'not-const';

4voto

Tejas Patel Punkte 1108

Zusammenfassung:

const erstellt eine unveränderliche Bindung, was bedeutet, dass eine const Variablenbezeichnung nicht neu zugewiesen werden kann.

const a = "Wert1";

Sie können es nicht neu zuweisen mit

a = "Wert2";

Wenn jedoch der const-Bezeichner ein Objekt oder ein Array enthält, kann der Wert geändert werden, solange wir ihn nicht neu zuweisen.

const x = { a: 1 }

x.a = 2; // Ist möglich und erlaubt

const numbers = [1, 2];
numbers.push(3); // Ist möglich und erlaubt

Bitte beachten Sie, dass const blockgebunden ist, genauso wie let, was nicht dasselbe ist wie var (das funktionsgebunden ist).

Kurz gesagt, wenn etwas wahrscheinlich nicht durch Neuzuweisung verändert werden wird, verwenden Sie const, sonst verwenden Sie let oder var, je nachdem, welchen Bereich Sie haben möchten.

Es ist viel einfacher, den Code zu verstehen, wenn klar erkennbar ist, was durch Neuzuweisung geändert werden kann und was nicht. Eine const in ein let zu ändern ist sehr einfach. Und standardmäßig auf const zu setzen, lässt Sie zweimal darüber nachdenken, bevor Sie etwas tun. Und das ist in vielen Fällen eine gute Sache.

4voto

Cjmarkham Punkte 9107

Persönliche Vorliebe wirklich. Du könntest const verwenden, wenn es, wie du sagst, nicht neu zugewiesen wird und konstant ist. Zum Beispiel, wenn du deinen Geburtstag zuweisen möchtest. Dein Geburtstag ändert sich nie, daher könntest du es als Konstante verwenden. Aber dein Alter ändert sich, daher könnte das eine Variable sein.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X