Ich habe viele Codes gesehen, die so angefangen haben

var a=a||{};

Jetzt weiß ich, dass es prüft, ob es eine gibt.

Meine Frage ist, warum ich es überprüfen soll, wenn es am Anfang des Codes steht.

Ich meine, der Programmierer weiß, dass a nicht existiert.

0
user1801625 19 Nov. 2012 im 12:51

4 Antworten

Beste Antwort

Der Programmierer sollte wissen, ob die Variable vorhanden ist oder nicht.

Es wird verwendet, um verschiedene Skriptteile zusammenzufügen, ohne verfolgen zu müssen, welcher Teil des Skripts zuerst geladen wird. Mehrere Skripte haben zu Beginn denselben Code, sodass sie dieselbe Variable verwenden.

Für das erste Skript wird die Variable deklariert und es gibt keinen vorherigen Wert dafür, daher wird der Wert {} verwendet.

Bei den folgenden Skripten, die es verwenden, wird var ignoriert, da die Variable bereits deklariert ist und der zuvor festgelegte Wert der Variablen verwendet wird.

Wenn Sie dieselbe Variable an mehreren Stellen deklarieren, riecht es natürlich nach Code. Am besten sollten Sie verfolgen, was Sie tun, damit Sie es nur einmal deklarieren.

2
Guffa 19 Nov. 2012 im 08:57

In klareren Code übersetzt

var a; // The variable declaration gets brought up because of hoisting

Weitere Informationen zum Heben hier

if( a ) {
    a = a; // if a is a truthy value then assign it to itself
} else {
    a = {}; // if a is a falsy value then set the default to an empty object
}

Ich hoffe, das hilft

1
Bruno 19 Nov. 2012 im 09:22

Grundsätzlich kann Javascript in mehrere Dateien geschrieben werden und in jeder Datei können mehrere Deklarationen und Funktionen definiert werden.

Selbst wenn der Programmierer für eine bestimmte Instanz weiß, ob die Variable vorhanden ist oder nicht, kann nicht festgestellt werden, ob sie bereits vorhanden ist, wenn dieser Code von einer anderen Stelle aufgerufen wird.

Dies sollte nicht in gut geschriebenem Code (alle von einem Entwickler / Haus) geschehen, sondern in Projekten, in denen der js-Code von mehreren Stellen zusammengeführt wird.

Diese SO-Frage enthält eine sehr gute Antwort zu variablen Bereichen in Javascript. Sie sollte Ihre Zweifel klären.

0
Community 23 Mai 2017 im 10:27

Dies ist eine Verknüpfung, um auf einen Standardwert zurückzugreifen - in diesem Fall {}.

0
Florian Salihovic 19 Nov. 2012 im 08:53