Wenn ich die Dokumentation online lese, bin ich verwirrt darüber, wie mehrere JavaScript-Variablen in einer einzigen Zeile richtig definiert werden.
Wenn ich den folgenden Code komprimieren möchte, wie kann JavaScript "streng" richtig definiert werden, um mehrere Javascript-Variablen in einer einzigen Zeile zu definieren?
var a = 0;
var b = 0;
Ist es:
var a = b = 0;
oder
var a = var b = 0;
etc...
javascript
HeatherK
quelle
quelle
var $cls = my.namespace.Foo = function(args){ ... }
Antworten:
Sie möchten sich auf Kommas verlassen, denn wenn Sie sich auf das Konstrukt mit mehreren Zuweisungen verlassen, schießen Sie sich an der einen oder anderen Stelle in den Fuß.
Ein Beispiel wäre:
Sie beziehen sich alle auf dasselbe Objekt im Speicher. Sie sind nicht "eindeutig", da jedes Mal, wenn Sie auf ein Objekt (Array, Objektliteral, Funktion) verweisen, es als Referenz und nicht als Wert übergeben wird. Wenn Sie also nur eine dieser Variablen ändern und möchten, dass sie individuell agieren, erhalten Sie nicht das, was Sie möchten, da es sich nicht um einzelne Objekte handelt.
Die Mehrfachzuweisung hat auch den Nachteil, dass die sekundären Variablen global werden und Sie nicht in den globalen Namespace gelangen möchten.
Verwenden Sie am besten nur Kommas und vorzugsweise viele Leerzeichen, damit es lesbar ist:
quelle
ReferenceError
Ausnahme verursacht ... IMO, sie sollten vermieden werden ...Mit es6 oder dem Knoten von Javascript können Sie Folgendes tun:
Wenn Sie problemlos mehrere Variablen in einer Zeile drucken möchten, gehen Sie wie folgt vor:
Dies ähnelt der Antwort von @alex grey hier, aber dieses Beispiel ist in Javascript anstelle von CoffeeScript.
Beachten Sie, dass hierfür die Array-Destrukturierungszuweisung von Javascript verwendet wird
quelle
console.log(a,b,c,d)
stattdessen in diesem Fall verwenden? es ist kürzer und gibt die gleiche AusgabeEs gibt keine Möglichkeit, dies in einer Zeile mit Zuweisung als Wert zu tun.
macht b global. Ein korrekter Weg (ohne leckende Variablen) ist der etwas längere:
was in dem Fall nützlich ist:
quelle
Warum nicht in zwei Zeilen?
Der Grund dafür ist, den lokalen Bereich für Variablendeklarationen wie folgt beizubehalten:
zu den impliziten Erklärungen führen
b
,c
undd
auf dem Fenster Umfang.quelle
Hier ist die neue ES6-Methode zur Deklaration mehrerer Variablen in einer Zeile:
* Ihr Variablenname und Ihr Objektindex müssen identisch sein
quelle
let { a, b } = { a: 0, b: 0 }
.Insbesondere wenn Sie N Variablen mit demselben Wert (z. B.
0
) initialisieren möchten , können Sie mithilfe der Array-Destrukturierung und Array.fill den Variablen ein Array von Ns zuweisen0
:quelle
Beachten Sie, dass Sie dies nur mit Zahlen und Zeichenfolgen tun können
du könntest es tun...
quelle