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?
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:
- Evaluieren Sie UnaryExpression .
- Wenn Type (Result (1)) Reference und GetBase (Result (1)) null ist, geben Sie
zurück"undefined"
.- Aufruf GetValue (Ergebnis (1)).
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
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:
- Evaluieren Sie UnaryExpression .
- Wenn Typ (Ergebnis (1)) nicht Referenz ist, fahren Sie mit Schritt 4 fort.
- Wenn GetBase (Result (1)) null ist, geben Sie
zurück"undefined"
.- Aufruf GetValue (Ergebnis (1)).
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
ECMAScript 4
Diese Spezifikation wurde aufgegeben.
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%Tags und Links javascript arrays