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

Einführung in JavaScript-Typbeurteilungsmethoden (Codebeispiel)

不言
Freigeben: 2019-03-18 11:02:00
nach vorne
2252 Leute haben es durchsucht

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
Nach dem Login kopieren

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
Nach dem Login kopieren

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]
Nach dem Login kopieren

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!

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
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage