JavaScript Selektive Array-Definitionssyntax

8

Ein paar Kollegen und ich sind auf eine etwas merkwürdigere JavaScript-Syntax gestoßen. Wir haben Probleme, das folgende Verhalten zu erklären (ich verwende die Chrome-Konsole):

%Vor%

Erträge

%Vor%

Im Wesentlichen ist es eine gültige Syntax, ein beliebiges Objekt (nicht nur leer) vor dem Array einzuschließen, und das Ergebnis ist immer nur das Array. Gibt es dafür eine Erklärung? Jeder Fall, in dem sich das nicht so verhält?

Auch diese Frage ist schwer zu suchen, da sie aus Zeichen besteht, die bei Suchmaschinen nicht gut funktionieren. Bitte lassen Sie mich wissen, wenn dies eine doppelte Frage ist.

    
Jamie Counsell 31.10.2016, 19:47
quelle

2 Antworten

7

{} ist eine leere Codeblock-Anweisung . Es folgt ein Array-Literal [1] . Dies ist der Wert, für den Ihr Programm {}[1] berechnet.

entspricht in etwa:

%Vor%

Wenn Sie den Wert mit Schlüssel 1 in einem leeren Objektliteral abrufen möchten, verwenden Sie Klammern:

({})[1] // undefined

Sie können den AST-Explorer verwenden, um die JavaScript-Parseransicht Ihres Codes anzuzeigen.

    
joews 31.10.2016, 19:50
quelle
4
  

Eine Block-Anweisung (oder zusammengesetzte Anweisung in anderen Sprachen) wird eingesetzt   um null oder mehr Anweisungen zu gruppieren. Der Block ist durch ein Paar begrenzt   geschweifte Klammern.

%Vor%

also grundsätzlich getippt & gt; [1]

    
epascarello 31.10.2016 19:49
quelle

Tags und Links