Lernen Sie die erweiterten Sicherheitstyp Erkennungsfunktion zu verwenden

js eingebauter Typ Erfassungsmechanismus ist nicht völlig zuverlässig, wie typeof Operator, vierte Ausgabe Safari bis bei regulärem Ausdruck Typeof Bediener kehrt die Anwendungsfunktion, ist es schwierig, die Funktion nicht ein Wert in dem Ende zu bestimmen.

Ein weiteres Beispiel Instanceof Bediener auch in einer Vielzahl von Problemen in der Gegenwart einer Vielzahl von globalem Bereich ist (wie eine Seite umfasst eine Vielzahl von Rahmen). wie

let isArray = value instanceof Array;

Der obige Code zurück wahr Wert muss ein Array sein und müssen die gleichen, und ein Konstruktor Array Opera UMFANG. (Beachten Sie, Array ist das Fenster Attribut). Wenn der Wert in dem Array in einem anderen Rahmen definiert ist, dann wird der obige Code falsch zurück.

Das Verfahren zur Lösung der obigen Probleme sind die gleichen. Wie wir alle wissen, rufen nativen das Object toString auf beliebigen Wert () Methode gibt eine [object NativeConstructorName] String-Format. Innerhalb jeder Klasse hat eine [[Klasse]] Eigenschaft. In diesem Attribut die Konfiguration der Zeichenfolge des Funktionsnamen angeben.

alert(Object.prototype.toString.call(value));   //[object Array]

Da der Name des Konstrukteurs und das Spiel unabhängig vom Umfang des ursprünglichen Arrays, so toString () verwendet die Rückkehr konsistenten Wert zu gewährleisten.

function isArray(value) {
    return Object.prototype.toString.call(value) == '[object Array]'
}


function isFunction(value) {
    return Object.prototype.toString.call(value) == '[object Function]'; } function isRegExp(value) { return Object.prototype.toString.call(value) == '[object RegExp]'; } 

Nativen JSON-Objekt-Erkennung. Gegenstand des toString () Konstruktor-Methode kann nicht erkennen, nicht-einheimischen Namen Konstruktor. Somit werden alle Konstrukteure vom Entwickler definiert werden [object Object] zurückgegeben werden

let isNativeJSON = window.JSON && Object.prototype.toString.call(JSON) == "[object JSON]"

Scan-Code plus-Gruppe, aktualisiert täglich einen Artikel Front-End-Technologie, um zusammen zu wachsen.

Ich denke du magst

Origin www.cnblogs.com/bbqq1314/p/12545473.html
Empfohlen
Rangfolge