Heim  >  Artikel  >  Web-Frontend  >  Einführung in JavaScript-Typbeurteilungsmethoden (Codebeispiel)

Einführung in JavaScript-Typbeurteilungsmethoden (Codebeispiel)

不言
不言nach vorne
2019-03-18 11:02:002164Durchsuche

Dieser Artikel bietet Ihnen eine Einführung in die Methoden zur Beurteilung von JavaScript-Typen (Codebeispiele). Ich hoffe, dass er Ihnen als Referenz dienen wird.

Beurteilung des JS-Datentyps

Manchmal ist es notwendig, den Datentyp zu beurteilen und sich mit verschiedenen komplexen logischen Beurteilungen zu befassen. Beginnen wir mit den am häufigsten verwendeten.

1.typeof

Der Operator „typeof“ gibt eine Zeichenfolge zurück und stellt den Typ der Variablen dar.

typeof oper / typeof (operand)

var testString = 'adus',
    testArray = [],
    testBoolean = true,
    testNumber = 0,
    testObject = {},
    testNull = null,
    testUndefined = undefined
    
console.log(typeof testString);//string
console.log(typeof testArray);//object
console.log(typeof testBoolean);//boolean
console.log(typeof testNumber);//number
console.log(typeof testObjec);//object
console.log(typeof testNull);//object
console.log(typeof testUndefined);//undefined

Natürlich gibt es nicht nur die oben genannten Grundtypen, sondern auch die folgenden:

Symbol (neu in ECMAScript 6) „symbol“

Hostobjekt (bereitgestellt von der JS-Umgebung) Implementierungsabhängig

Funktionsobjekt ([[Call]] ist in der ECMA-262-Klausel implementiert) „function“

咦? Etwas stimmt nicht. Warum sind Arrays, Null usw. alles Objekte? ? ? Bitte schauen Sie sich

Instanzen von Funktions- oder Array-Typen an, bei denen es sich tatsächlich um Erweiterungen handelt, die auf Objektinstanzen basieren. Es hat einfach noch mehr einzigartige Eigenschaften.

In der ursprünglichen Implementierung von JavaScript wurde ein Wert in JavaScript durch ein Tag dargestellt, das den Typ und den tatsächlichen Datenwert darstellte. Das Typ-Tag des Objekts ist 0.

Weil null einen Nullzeiger darstellt (der Wert ist auf den meisten Plattformen 0x00).

Daher wird auch das Typ-Tag von null zu 0 und typeof null gibt fälschlicherweise „Objekt“ zurück. (Referenz)

2.instanceof

Der Operator „instanceof“ wird verwendet, um zu testen, ob das Prototypattribut des Konstruktors irgendwo in der Prototypenkette des Objekts vorkommt Variable ist eine bestimmte Instanz des Objekts.

Objektinstanz des Konstruktors

zu erkennendes Objekt/Konstruktorkonstruktor

function fnc(){}
var newFnc = new fnc();
console.log(newFnc.__proto__ == fnc.prototype);//true
console.log( newFnc instanceof fnc ) //true


/*String对象和Date对象都属于Object类型和一些特殊情况*/

var simpleStr = "This is a simple string"; 
var myString  = new String();
var newStr    = new String("String created with constructor");
var myDate    = new Date();
var myObj     = {};
var myNonObj  = Object.create(null);

simpleStr instanceof String; // 返回 false, 检查原型链会找到 undefined
myString  instanceof String; // 返回 true
newStr    instanceof String; // 返回 true
myString  instanceof Object; // 返回 true

myObj instanceof Object;    // 返回 true, 尽管原型没有定义
({})  instanceof Object;    // 返回 true, 同上
myNonObj instanceof Object; // 返回 false, 一种创建对象的方法,这种方法创建的对象不是Object的一个实例

myString instanceof Date; //返回 false

myDate instanceof Date;     // 返回 true
myDate instanceof Object;   // 返回 true
myDate instanceof String;   // 返回 false

3.Object.prototype.toString()

Jedes Objekt Es gibt ein toString()-Methode, die automatisch aufgerufen wird, wenn das Objekt als Textwert dargestellt wird oder wenn auf ein Objekt in der erwarteten Zeichenfolgenart verwiesen wird. Standardmäßig wird die toString()-Methode von jedem Object-Objekt geerbt. Wenn diese Methode in einem benutzerdefinierten Objekt nicht überschrieben wird, gibt toString() „[Objekttyp]“ zurück, wobei Typ der Typ des Objekts ist.

Function.prototype.call( thisArg ) / Function.prototype.apply( thisArg )

Übergeben Sie das zu prüfende Objekt als ersten Parameter, genannt thisArg.

var toString = Object.prototype.toString;

toString.call(new Date); // [object Date]
toString.call(new String); // [object String]
toString.call(Math); // [object Math]

//Since JavaScript 1.8.5
toString.call(undefined); // [object Undefined]
toString.call(null); // [object Null]

Die Verwendung der geeigneten Methode im entsprechenden Szenario erspart Ihnen Sorgen und stellt die Einfachheit und Robustheit des Codes sicher.


Das obige ist der detaillierte Inhalt vonEinführung in JavaScript-Typbeurteilungsmethoden (Codebeispiel). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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