Heim >Web-Frontend >js-Tutorial >JavaScript bestimmt den variablen Datentyp
Kürzlich habe ich an einem Projekt gearbeitet, bei dem es um die Verarbeitung von js-Beurteilungen von Datentypen ging. Ich habe im Internet nach relevanten Informationen gesucht und die Beurteilung verschiedener Datentypen persönlich getestet. Nachfolgend stellt Ihnen der Herausgeber eine Zusammenfassung des spezifischen Inhalts als Referenz zur Verfügung!
1. Datentypen in JS
1. Numerischer Typ (Zahl): einschließlich Ganzzahlen und Gleitkommazahlen.
2. Boolescher Typ (Boolean)
3. String-Typ (String)
4. Objekt (Object)
5. Array
6. Null
7. Undefiniert
2. Bestimmen Sie den Datentyp von a Variable
1. Numerischer Typ (Zahl)
Die am häufigsten verwendete Beurteilungsmethode ist:
function isNumber(val){ return typeof val === 'number'; }
Aber in einigen Fällen funktioniert es nicht, wie zum Beispiel:
var a; alert(isNumber(parseInt(a)));
Was hier auftaucht, ist wahr, wie in der Abbildung unten gezeigt:
Tatsächlich ist die Variable a jedoch NaN, was nicht für numerische Operationen verwendet werden kann.
Die obige Funktion kann also wie folgt geändert werden:
function isNumber(val){ return typeof val === 'number' && isFinite(val); }
Nach der Änderung wird „false“ angezeigt, wie in der folgenden Abbildung dargestellt:
Übrigens möchte ich die JavaScript-Funktion isFinite() vorstellen. Die Funktion isFinite() wird verwendet, um zu überprüfen, ob die Zahl eine endliche Zahl ist (oder in sie umgewandelt werden kann). eine endliche Zahl), gibt es true zurück. Andernfalls wird false zurückgegeben, wenn die Zahl NaN (keine Zahl) oder eine positive oder negative Unendlichkeitszahl ist.
2. Boolescher Wert
Die Beurteilung des booleschen Typs ist relativ einfach und kann mit der folgenden Methode beurteilt werden:
/* 判断变量val是不是布尔类型 */ function isBooleanType(val) { return typeof val ==="boolean"; }
Testcode:
Laufergebnis:
3. String (String)
Bestimmung des String-Typs Es ist relativ einfach . Sie können die folgende Methode zur Beurteilung verwenden:
/* 判断变量是不是字符串类型 */ function isStringType(val) { return typeof val === "string"; }
4. Die Beurteilung von undefiniert ist relativ einfach und kann mit der folgenden Methode beurteilt werden:
Testcode:
Laufergebnis:
5. Objekt (Objekt)
/* 判断变量是不是Undefined */ function isUndefined(val) { return typeof val === "undefined"; }
Da die Variable ein Nullwert ist. Wenn Null verwendet wird, gibt typeof auch ein Objekt zurück, sodass Object nicht direkt mit typeof beurteilt werden kann.
sollte so aussehen:
Testcode:
Laufergebnis:
function isObj(str){ if(str === null || typeof str === 'undefined'){ return false; } return typeof str === 'object'; }
6. Null
Um den Nullwert zu beurteilen, verwenden Sie val === null
Testcode:
function isNull(val){ return val === null; }
7. Array
/* 判断变量是不是null */ function isNull(val){ return val === null; } /*测试变量*/ var a; var b = null; var c = "str"; //弹出运行结果 alert("变量a是null的判断结果是:"+isNull(a));//false alert("变量b是null类型的判断结果是:"+isNull(b));//true alert("变量c是null类型的判断结果是:"+isNull(c));//false
Der Array-Typ kann nicht durch typeof bestimmt werden. Denn wenn die Variable ein Array-Typ ist, gibt typeof ein Objekt zurück.
Es gibt zwei Möglichkeiten, den Array-Typ zu bestimmen:
Testcode:
/*判断变量arr是不是数组 方法一 */ function isArray(arr) { return Object.prototype.toString.apply(arr) === '[object Array]'; } /*判断变量arr是不是数组 方法二 */ function isArray(arr) { if(arr === null || typeof arr === 'undefined'){ return false; } return arr.constructor === Array; }
Laufergebnis: