#Neuigkeiten

Übersetzungen von Artikeln, meine Notizen und Beobachtungen

#JS-2: const

von Rashid Bairamov

Kurz gesagt

Const - ist ein Schlüsselwort in der Programmiersprache zur Deklaration von Konstanten. Eine Konstante ist eine Variable, deren Wert nicht neu zugewiesen werden kann.

const DAY_IN_YEAR = 365;

Wie man es versteht

Konstanten sind im Grunde genommen dasselbe wie Variablen. Der einzige Unterschied besteht darin, dass ihr Wert nicht neu zugewiesen werden kann.

Wenn man versucht, dies zu tun, wird der Code mit einem Fehler abstürzen: TypeError: invalid assignment to const.

const DAYS_IN_YEAR = 365;
console.log( DAYS_IN_YEAR );
DAYS_IN_YEAR = 600;

// Fehler, Konstanten können nicht neu zugewiesen werden.

☝️ Wenn eine Konstante ein Array oder ein Objekt enthält, können Sie das Array oder das Objekt selbst ändern! Sie können jedoch nicht das gesamte Array oder Objekt durch ein anderes ersetzen. Dies liegt daran, dass die Konstante eine Referenz auf den komplexen Wert speichert, nicht den Wert selbst.

Zum Beispiel können wir ein neues Objekt in ein Array einfügen, aber wenn wir versuchen, ein leeres Array der Variablen series zuzuweisen, tritt ein Fehler auf:

const Serien = ['Dr. House', 'Klinik', 'Schwarzer Spiegel'];
Serien.push('Jungvater');
Serien = []; // 🙅‍♂️ Wir können _nicht_ ein Array durch ein anderes ersetzen

const person = { name: 'X Æ A-12', lastName: 'Musk' };
person.age = 0;
person = { name: 'Pedro' }; // 🙅‍♀️ Wir können nicht durch ein neues Objekt ersetzen

Warum sind Konstanten wichtig?

Konstanten schützen den Code vor versehentlicher Überschreibung wichtiger Werte.

Konstanten werden in zwei Fällen verwendet:

  • Wenn wir eine Variable deklarieren möchten, die einen fundamentalen Wert für das Programm speichert. Zum Beispiel die Anzahl der Tage in einem Jahr, den Mindestbestellwert, Datumsformate usw.
  • Wenn wir eine Variable deklarieren und ihr nur einmal einen Wert zuweisen möchten.

Konstanten werden genauso geschrieben wie Variablen:

const name = Wert

Auf praktischer Ebene

In modernem JavaScript werden Konstanten häufiger verwendet als Variablen. In den meisten Fällen wird der Wert einer Variable nur einmal festgelegt. Es gilt als bewährte Praxis, solche Variablen mit const zu deklarieren und den Variablennamen in camelCase zu schreiben, um diesen Umstand zu betonen.

for (let i = 0; i < users.length; ++i) {
  const user = users[i]
  printUserInfo(user)
}

Verwenden Sie das ALL_CAPS-Format für die Benennung, wenn Sie eine Konstante deklarieren, die einen wichtigen Wert für das Programm enthält: die Anzahl der Elemente auf der Seite standardmäßig, das Datumsformat, die maximale Anzahl von Bestellungen usw.

const ITEMS_PER_PAGE = 25

for (let i = 0; i < products.length && i < ITEMS_PER_PAGE; i++) {
  printItem(products[i])
}

Auf einem Vorstellungsgespräch

❓ Was ist der Unterschied zwischen null, undefined und einer deklarierten Variable ohne Anfangswert? (let foo;)

 

null wird einer Variablen explizit zugewiesen und bedeutet, dass sie ein Objekt ist, dessen Struktur jedoch noch nicht definiert ist. undefined wird einer Variablen zugewiesen (die Variable deklariert jedoch kein Objekt), wenn sie deklariert wurde, aber ihr kein Anfangswert zugewiesen wurde. Eine Funktion kann undefined oder null zurückgeben. Alles hängt davon ab, was wir von der Funktion erwarten. Wenn wir ein Objekt erwarten, die Funktion es jedoch aus irgendeinem Grund nicht zurückgeben kann, geben wir null zurück. Wenn die Funktion beispielsweise eine Zahl zurückgeben soll (Hauptsache kein Objekt), aber dies nicht kann, gibt sie undefined zurück.

Eine Variable ohne Anfangswert kann nur für eine Variable verwendet werden, die mit let oder var deklariert wurde. Wenn eine Variable mit const deklariert wird und ihr kein Anfangswert zugewiesen wird, tritt ein Fehler auf: Uncaught SyntaxError: Missing initializer in const declaration.

Lassen Sie uns kurz über Typumwandlung sprechen. Hier ist ein Beispiel:

console.log(null + null); // 0 console.log(undefined + undefined); // NaN"

Gemäß der EcmaScript-Spezifikation:

  • null wird während der Addition zu Null konvertiert.
  • undefined wird während der Addition zu NaN konvertiert. NaN steht für "not a number" - keine Zahl. Das Ergebnis einer arithmetischen Operation ist NaN, wenn während der Operation ein Fehler auftritt und das erwartete numerische Ergebnis nicht als Zahl ausgedrückt werden kann.

Es gibt auch ein weiteres kniffliges Beispiel:

console.log(null + []); // "null"

Warum so?

Der Grund dafür liegt darin, dass der Ergebnistyp "null" eine Zeichenkette ist, nicht ein primitiver Wert null.

JavaScript wandelt zunächst das Array in einen primitiven Wert um. Dazu wird die toString()-Methode aufgerufen, die dann die join()-Methode aufruft. Da das Array leer ist, gibt join() eine leere Zeichenkette "" zurück. Da in JavaScript das Hinzufügen von etwas zu einer Zeichenkette eine Zeichenkette zurückgibt, wird null bereits zu einer Zeichenkette, und die Zeichenkette "null" wird zurückgegeben.