Heim > Web-Frontend > js-Tutorial > Eine kurze Diskussion über die Beurteilung des JS-Datentyps und der Array-Beurteilung

Eine kurze Diskussion über die Beurteilung des JS-Datentyps und der Array-Beurteilung

高洛峰
Freigeben: 2017-01-14 10:02:41
Original
1167 Leute haben es durchsucht

Am Anfang geschrieben:

Gestern während des Interviews stellte ich fest, dass ich eine sehr, sehr einfache Frage nicht beantwortet hatte. Vielleicht lag es daran, dass ich zu nervös war und das Gefühl hatte, ich würde etwas machen ich selbst weine. Später habe ich darüber nachgedacht, ich sollte es sorgfältig aufzeichnen, damit ich einen tiefen Eindruck habe. Die Revolution war noch nicht erfolgreich und wir müssen noch hart daran arbeiten, stärker zu werden!

1. Die sechs wichtigsten js-Datentypen

Zahl: Zahlen, ganze Zahlen, Gleitkommazahlen usw.,

Zeichenfolge: einfache Anführungszeichen oder doppelte Anführungszeichen,

Boolean: Gibt true und false zurück, diese beiden Werte entsprechen nicht unbedingt 1 und 0

Objekt: Objekt, das durch Ausführen des neuen Operators gefolgt vom Namen des Objekttyps erstellt werden kann erstellt werden.

null: Es gibt nur einen Wertdatentyp. Logischerweise stellt der Nullwert einen Nullobjektzeiger dar.

undefiniert: Undefiniert Wenn eine Variable mit var deklariert, aber nicht initialisiert wird, ist der Wert der Variablen undefiniert.

2. 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;
}
Nach dem Login kopieren

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

Zusätzlich zu den vier Typen Zeichenfolge, Zahl, Boolescher Wert und Undefiniert, Null und Objekt, Array gibt alle Objekttypen zurück! ! !

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

3. So bestimmen Sie den Array-Typ in js

1) Instanz von

Instanz von ist ein ternärer Operator, der verwendet wird, um zu bestimmen, ob eine Variable eine Instanz eines Objekts ist. 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
Nach dem Login kopieren

Beispiel:

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

2) Konstruktor

Definition in W3C-Definition: Konstruktorattribut Gibt a zurück Verweis auf die Array-Funktion, die dieses Objekt erstellt hat

var arr = [];
arr instanceof Array; // true
arr.constructor == Array; //true
Nach dem Login kopieren

Die Methode zur Beurteilung verschiedener Typen ist:

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

Allgemeine Methode:

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

3) Charakteristische Beurteilung

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'));
}
Nach dem Login kopieren

4) Object.prototype.toString.call

Object.prototype.toString.call(value) == '[object Array]'
Nach dem Login kopieren

Der obige Artikel befasst sich kurz mit der Beurteilung von js-Datentypen und Arrays Das Urteil bezieht sich auf alle vom Herausgeber geteilten Inhalte. Ich hoffe, dass es Ihnen eine Referenz geben kann, und ich hoffe auch, dass Sie die chinesische PHP-Website unterstützen.

Weitere Artikel zur Beurteilung von js-Datentypen und Arrays finden Sie auf der chinesischen PHP-Website!

Verwandte Etiketten:
Quelle:php.cn
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage