Heim > Artikel > Web-Frontend > 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
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表示该值的构造函数。这是一个十分有用的判断数据类型的方法。
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]。
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"
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(); }; });
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
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!