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

So bestimmen Sie den Datentyp in js

王林
王林nach vorne
2020-05-13 09:18:403944Durchsuche

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:cnblogs.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen