Heim > Web-Frontend > js-Tutorial > Hauptteil

Einführung in Methoden zur Beurteilung von Datentypen in JavaScript (Code)

不言
Freigeben: 2019-03-29 09:48:15
nach vorne
2309 Leute haben es durchsucht

Dieser Artikel bietet Ihnen eine Einführung in die Methode zur Beurteilung von JavaScript-Datentypen (Code). Ich hoffe, dass er für Freunde hilfreich ist.

1. Der häufig verwendete Typ von

ist nicht für die Beurteilung von Array, Objekt und Null geeignet. Sie können die Ausführungsergebnisse in der folgenden Abbildung sehen.

Einführung in Methoden zur Beurteilung von Datentypen in JavaScript (Code)

var obj = {
  number:123,
  string: '123',
  bool: true,
  obj: {},
  arr: [],
  n: null,
  undef: undefined,
  fn: function () {}
}

for(key in obj) {
  console.log(key + ": " + typeof obj[key])
}
Nach dem Login kopieren

2. instanceof

instanceof testet, ob das Prototypattribut des Konstruktors irgendwo in der Prototypenkette des Objekts vorkommt.
Wenn Sie die Prototypenkette verstehen, wissen Sie, dass der von „instanceof“ erhaltene Wert nicht festgelegt ist. Das Offensichtlichste ist, dass alle grundlegenden Datentypen von Object erben .protype.

[任何数据类型] instanceof Object
> true
Nach dem Login kopieren

wie unten gezeigt:

Einführung in Methoden zur Beurteilung von Datentypen in JavaScript (Code)

3. Endgültige Lösung: Object.prototype.toString.call()

Das Folgende ist die beste, umfassendste und effektivste Kompatibilitätslösung:
Im Folgenden finden Sie zwei Implementierungsmethoden (Prototypmethode und globale Methode), die Sie entsprechend Ihren eigenen Anforderungen auswählen können.

(function () {
  function isType(type,data) {
    // data是全局方法时使用的,原型方法可不填
    return Object.prototype.toString.call(data || this) === '[object ' + type + ']'
  }
  // 全局方法支持null和undefined
  // window.isType = isType

  // 添加到数据类型的原型中,不支持null和undefined
    Object.defineProperty(Object.prototype,'isType',{
      value:isType,
      writable:true,
        enumerable:false,
        configurable:true
    });
})()
Nach dem Login kopieren

Verwendung:

var str = 'abc';
// 全局方法
isType('String', str) // True

// 原型方法
str.isType('String')
Nach dem Login kopieren

Testcode:

var obj = {
  test: {
    number:123,
    string: '123',
    obj: {},
    bool: true,
    arr: [],
    n: null,
    undef: undefined,
    fn: function () {

    }
  }
}
// 原型方法不支持null和undefined,请用“===”
console.log(obj.test.number.isType('Number'))
console.log(obj.test.number.isType('String'))

console.log(obj.test.string.isType('String'))
console.log(obj.test.string.isType('Number'))

console.log(obj.test.obj.isType('Object'))
console.log(obj.test.obj.isType('Array'))

console.log(obj.test.arr.isType('Array'))
console.log(obj.test.arr.isType('Object'))


console.log(obj.test.fn.isType('Function'))
console.log(obj.test.fn.isType('Object'))
Nach dem Login kopieren

Einführung in Methoden zur Beurteilung von Datentypen in JavaScript (Code)

Dieser Artikel ist hier, und es gibt noch mehr. Für spannende Inhalte, Sie können Sie auf die Spalte JavaScript Video Tutorial auf der chinesischen PHP-Website achten! ! !

Das obige ist der detaillierte Inhalt vonEinführung in Methoden zur Beurteilung von Datentypen in JavaScript (Code). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:segmentfault.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage