Heim  >  Artikel  >  Web-Frontend  >  Detaillierte Erläuterung, wie der js-Datentyp und die Array-Methodeninstanz beurteilt werden

Detaillierte Erläuterung, wie der js-Datentyp und die Array-Methodeninstanz beurteilt werden

伊谢尔伦
伊谢尔伦Original
2017-07-18 11:37:221594Durchsuche

Datentypbeurteilung typeof

typeof kann die Beurteilung der meisten Datentypen lösen. Sein Rückgabewert ist eine Zeichenfolge, die den Typ des Operanden beschreibt.


//判断变量num是不是一个数字类型
if(typeof num=='number') {
  return true;
}

Ergebnisse zurückgeben:


var a="hling"; console.log(a); //string
var a=1; console.log(a); //number
var a=false; console.log(a); //boolean
var a; console.log(typeof a); //undfined
var a = null; console.log(typeof a); //object
var a = document; console.log(typeof a); //object
var a = []; console.log(a); //object
var a = function(){}; console.log(typeof a) 
//function除了可以判断数据类型还可以判断function类型

Außer Zeichenfolge, Zahl, boolescher Wert, undefiniert Zusätzlich zu diesen vier Typen geben Null, Objekt und Array alle Objekttypen zurück! ! !

Für Funktionstypen wird eine Funktion zurückgegeben, z. B. typeof(Date), typeof(eval) usw.

JS-Methode zur Bestimmung des Array-Typs

1) Instanz von

Instanz von wird zur Bestimmung verwendet Ob die Variable eine Instanz eines Objekts ist, ist ein ternärer Operator. Dieser Operator hat etwas mit der Objektorientierung in JavaScript zu tun. Um dies zu verstehen, müssen Sie zunächst die Objektorientierung in JavaScript verstehen. Denn dieser Operator erkennt, ob die Prototypkette des Objekts auf das Prototypobjekt des Konstruktors verweist.


a instanceof b?alert("true"):alert("false") 
//注意b值是你想要判断的那种数据类型,是不是一个字符串,比如Array

Beispiel:


var arr = [1,2,3,1]; 
alert(arr instanceof Array); // true

2) Konstruktor

Definition in der W3C-Definition: Das Konstruktorattribut gibt einen Verweis auf die Array-Funktion zurück, die dieses Objekt erstellt hat


var arr = []; 
arr instanceof Array; // true 
arr.constructor == Array; //true

Beurteilen Sie verschiedene Typen Methode ist:


console.log("string".constructor == String);
console.log((123).constructor == Number);
console.log(false.constructor == Boolean);
console.log([].constructor == Array);
console.log({}.constructor == Object);

Die allgemeine Methode:


function isArray(object){
  return object && typeof object==='object' &&
      Array == object.constructor;
}

3) Merkmale Richter

object.isArray() zur Beurteilung, der Zweck besteht darin, genau zu erkennen, ob ein Wert ein Array ist. IE9+, Firefox 4+, Safari 5+, Opera 10.5+ und Chrome implementieren alle diese Methode. Versionen vor IE8 werden jedoch nicht unterstützt.


function isArray(object){
  return object && typeof object==='object' &&  
      typeof object.length==='number' && 
      typeof object.splice==='function' &&  
       //判断length属性是否是可枚举的 对于数组 将得到false 
      !(object.propertyIsEnumerable('length'));
}

4) Object.prototype.toString.call


Object.prototype.toString.call(value) == '[object Array]'

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung, wie der js-Datentyp und die Array-Methodeninstanz beurteilt werden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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