Hat der JavaScript-Typ jemals "Array" zurückgegeben?

8

Ich habe dieses Idiom in verschiedenen Open-Source-Projekten gesehen:

%Vor%

Ich weiß, dass die zweite Hälfte in ECMAScript 5 (oder 6) nicht wahr sein kann, aber gibt es jemals eine Implementierung, die "array" von typeof zurückgibt? Oder ist das ein Fall von falschen Defensivprogrammen?

    
Peter Dillinger 15.05.2015, 16:57
quelle

2 Antworten

5

Nein, zumindest seit der ersten Version von ECMAScript.

ECMAScript 1 (Juni 1997)

  

11.4.3 - Der Operator typeof

     

Die Produktion UnaryExpression : typeof UnaryExpression ist   wie folgt bewertet:

     
  1. Evaluieren Sie UnaryExpression .
  2.   
  3. Wenn Type (Result (1)) Reference und GetBase (Result (1)) null ist, geben Sie "undefined" .
  4. zurück   
  5. Aufruf GetValue (Ergebnis (1)).
  6.   
  7. Gibt eine durch Typ (Ergebnis (3)) festgelegte Zeichenfolge gemäß der folgenden Tabelle zurück:

         
    • Nicht definiert: "undefined"
    •   
    • Null: "object"
    •   
    • Boolescher Wert: "boolean"
    •   
    • Nummer: "number"
    •   
    • Zeichenfolge: "string"
    •   
    • Objekt (nativ und implementiert [[Call]] nicht): "object"
    •   
    • Objekt (nativ und implementiert [[Call]]): "function"
    •   
    • Objekt (Host): Implementierungsabhängig
    •   
  8.   

ECMAScript 2 (August 1998)

Keine Änderungen.

ECMAScript 3 (Dezember 1999)

Keine relevanten Änderungen.

  

11.4.3 - Der Operator typeof

     

Die Produktion UnaryExpression : typeof UnaryExpression ist   wie folgt bewertet:

     
  1. Evaluieren Sie UnaryExpression .
  2.   
  3. Wenn Typ (Ergebnis (1)) nicht Referenz ist, fahren Sie mit Schritt 4 fort.
  4.   
  5. Wenn GetBase (Result (1)) null ist, geben Sie "undefined" .
  6. zurück   
  7. Aufruf GetValue (Ergebnis (1)).
  8.   
  9. Gibt eine durch Typ (Ergebnis (4)) bestimmte Zeichenfolge gemäß der folgenden Tabelle zurück:

         
    • Nicht definiert: "undefined"
    •   
    • Null: "object"
    •   
    • Boolescher Wert: "boolean"
    •   
    • Nummer: "number"
    •   
    • Zeichenfolge: "string"
    •   
    • Objekt (nativ und implementiert [[Call]] nicht): "object"
    •   
    • Objekt (nativ und implementiert [[Call]]): "function"
    •   
    • Objekt (Host): Implementierungsabhängig
    •   
  10.   

ECMAScript 4

Diese Spezifikation wurde aufgegeben.

    
Oriol 15.05.2015, 17:17
quelle
0

Aus Gründen der Vollständigkeit werden häufig verwendete Methoden verwendet, um nach Arrays zu suchen:

%Vor%

Oder falls Sie eine Objekt-Eigenschaft überprüfen möchten:

%Vor%     
Rico Herwig 15.05.2015 17:26
quelle

Tags und Links