ich tat etwas Forschung auf typeof
Bedienungs JavaScript und über die folgende Seltsamkeit gestolpert:Warum ist document.all definiert, aber typeof document.all gibt "undefined" zurück?
Ausnahmen
All aktueller Browser ein Nicht-Standard Nicht definiert mit Typ
document.all
Objekt Host aus.Obwohl die Spezifikation benutzerdefinierte Typen-Tags für nicht standardmäßige exotische Objekte zulässt, müssen diese Typen-Tags sich von den vordefinierten unterscheiden. Der Fall
document.all
mit dem Typenschild'undefined'
muss als außergewöhnlicher Verstoß gegen die Regeln eingestuft werden.
(Source)
Ich habe folgendes in meinem Browser, um es zu testen:
console.log("typeof: " + typeof document.all);
console.log("toString: " + document.all);
Es ergab:
typeof: undefined
toString: [object HTMLAllCollection]
Warum ist document.all
so? Da document.all
ein Objekt ist (in meinem Browser definiert), sollte typeof
nicht "object"
zurückgegeben werden, nicht "undefined"
?
sein Vielleicht kann dies Ihre Frage beantworten: http: // Stackoverflow. com/questions/10350142/why-is-Dokument-all-falsy Bearbeiten: Dieser gibt weitere Details: http://StackOverflow.com/Questions/20880324/Document-all-is-not-working-in-firefox) – Seblor
Für Legacy-Kram würdest du es versuchen Niemals benutzen. –
@Seblor keiner von denen sagen, warum 'typeof document.all ===" undefined "' obwohl. –