Heim > Web-Frontend > js-Tutorial > So bestimmen Sie den Datentyp in js

So bestimmen Sie den Datentyp in js

王林
Freigeben: 2020-05-13 09:18:40
nach vorne
3970 Leute haben es durchsucht

So bestimmen Sie den Datentyp in js

Methode 1, in js integrierte Methode typeof

Die beste Wahl zum Erkennen grundlegender Datentypen ist die Verwendung von typeof

typeof Um den Datentyp zu bestimmen, können Sie nur zwischen sieben Grundtypen unterscheiden, nämlich „Zahl“, „Zeichenfolge“, „undefiniert“, „boolean“, „Objekt“, „Funktion“ und „Symbol“ (neu in ES6). ).

Für Arrays, Null und Objekte sind ihre Beziehungen kompliziert, und die Verwendung von „typeof“ gibt einheitlich die Zeichenfolge „object“ zurück.

Beispiel:

var bool = true
var num = 1
var str = 'abc'
var und = undefined
var nul = null
var arr = [1,2,3]
var obj = {}
var fun = function(){}
var reg = new RegExp()

console.log(typeof bool); //boolean
console.log(typeof num); //number
console.log(typeof str); //string
console.log(typeof und); //undefined
console.log(typeof nul); //object
console.log(typeof arr); //object
console.log(typeof obj); //object
console.log(typeof reg); //object
console.log(typeof fun); //function
Nach dem Login kopieren

Wie aus den Ergebnissen ersichtlich ist, mit der Ausnahme, dass bei der Erkennung von Null ein Objekt zurückgegeben wird und bei der Erkennung der Funktion die Funktion zurückgesetzt wird. Bei Referenztypen ist der Rückgabewert Objekt.

Methode 2, Object.prototype.toString()

Die Object.prototype.toString-Methode gibt die Typzeichenfolge des Objekts zurück, sodass sie zur Bestimmung verwendet werden kann der Typ eines Werts.

var obj = {};
obj.toString() // "[object Object]"上面代码调用空对象的toString方法,结果返回一个字符串object Object,其中第二个Object表示该值的构造函数。这是一个十分有用的判断数据类型的方法。
Nach dem Login kopieren

Object.prototype.toString.call(value)

Der obige Code bedeutet den Aufruf der Object.prototype.toString-Methode für den Wert.

Die Rückgabewerte der Object.prototype.toString-Methode verschiedener Datentypen sind wie folgt.

数值:返回[object Number]。
字符串:返回[object String]。
布尔值:返回[object Boolean]。
undefined:返回[object Undefined]。
null:返回[object Null]。
数组:返回[object Array]。
arguments 对象:返回[object Arguments]。
函数:返回[object Function]。
Error 对象:返回[object Error]。
Date 对象:返回[object Date]。
RegExp 对象:返回[object RegExp]。
其他对象:返回[object Object]。
Nach dem Login kopieren

Mit dieser Funktion können Sie dann eine genauere Typbeurteilungsfunktion schreiben als mit dem Operator „typeof“.

Kapselt eine Funktion zur Bestimmung des Typs wie folgt:

var type = function (o){
  var s = Object.prototype.toString.call(o);
  return s.match(/\[object (.*?)\]/)[1].toLowerCase();
};
type({}); // "object"
type([]); // "array"
type(5); // "number"
type(null); // "null"
type(); // "undefined"
type(/abcd/); // "regex"
type(new Date()); // "date"
Nach dem Login kopieren

Zusätzlich: Sie können auch eine Methode hinzufügen, um gezielt einen bestimmten Datentyp zu bestimmen

var type = function (o){
  var s = Object.prototype.toString.call(o);
  return s.match(/\[object (.*?)\]/)[1].toLowerCase();
};

var arr = ['Null', 'Undefined', 'Object', 'Array', 'String', 'Number', 
 'Boolean', 'Function', 'RegExp']

arr.forEach(function (t) {
  type['is' + t] = function (o) {
    return type(o) === t.toLowerCase();
  };
});
Nach dem Login kopieren

Danach Wir können Methoden zur Verwendung für unterschiedliche Anforderungen kapseln: wie folgt:

type.isObject({}) // true
type.isNumber(NaN) // true
type.isRegExp(/abc/) // true
Nach dem Login kopieren

Empfohlenes Tutorial: js-Einführungs-Tutorial

Das obige ist der detaillierte Inhalt vonSo bestimmen Sie den Datentyp in js. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:cnblogs.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