Typ einer Variablen in JavaScript abrufen
-
Verwenden des Operators
typeofzum Ermitteln des Variablentyps -
Verwendung des Operators
typeofin bedingten Prüfungen - Notiz:
Im Vergleich zu anderen Programmiersprachen wie C, Java usw. gibt JavaScript Entwicklern die Freiheit, Variablen jeden Typs mit einem einzigen Schlüsselwort (dem Schlüsselwort var) zu definieren. JavaScript wiederum bestimmt später den Datentyp der Variablen in Abhängigkeit von den diesen Variablen zugewiesenen Werten. Es ist scheinbar einfach, den Datentyp einer Variablen zu bestimmen. Aber einige Szenarien können uns in eine Lösung bringen. Insbesondere bei Werten, die von der REST-API-Antwort des Servers zurückgegeben werden, müssen wir möglicherweise den Typ des Werts oder der Variablen kennen, bevor wir weiteren Code zur Verarbeitung verwenden.
Verwenden des Operators typeof zum Ermitteln des Variablentyps
typeof ist ein unärer Operator in Javascript, der den Typ eines Operanden zurückgibt, auf den er angewendet wird. Es gibt normalerweise den Variablentyp als String-Objekt zurück. Es gibt Standard-Rückgabetypen für den typeof-Operator in Javascript.
string:typeofgibtstringfür einen Variablentyp string zurück.number: Gibtnumberfür eine Variable zurück, die einen Integer- oder Gleitkommawert enthält.boolean: Für eine Variable mittrueoderfalseWerten gibttypeofbooleanzurück.undefined: Falls wir einer Variablen keine Werte zuweisen, wird der Typ der Variablen von JavaScript alsundefinedmarkiert. Daher gibt der Operandtypeoffür solche nicht deklarierten Variablenundefinedzurück.object: Für Variablen, die ein Array oder ein Objekt in{}enthalten, oder Variablen, denen der Wertnullzugewiesen ist, betrachtet Javascript den Typ solcher Variablen als Objekt. Daher gibt der Operandtypeofobjectzurück.function: JavaScript ermöglicht es uns, einer Variablen Funktionen zuzuweisen. In solchen Fällen ist der Typ solcher VariablenFunktion. Der Operatortypeofgibtfunctionfür eine Funktionszuweisung zurück.
Der folgende Codeausschnitt demonstriert das Verhalten des Operators typeof für verschiedene Variablenzuweisungen und verschiedene Szenarien.
var s1 = 'hello';
var n1 = 120;
var n1 = 11.1234;
var b1 = true;
var x;
var u = undefined;
var o1 = null;
var o2 = {id: 1, value: 200};
var o3 = [1, 2, 3];
var f = function() {
return 1 + 2
};
console.log(typeof s1);
console.log(typeof n1);
console.log(typeof n1);
console.log(typeof b1);
console.log(typeof x);
console.log(typeof u);
console.log(typeof o1);
console.log(typeof o2);
console.log(typeof o3);
console.log(typeof f);
Ausgabe:
"string"
"number"
"number"
"boolean"
"undefined"
"undefined"
"object"
"object"
"object"
"function"
Verwendung des Operators typeof in bedingten Prüfungen
Wir können den Operator typeof in Bedingungsprüfungen wie im if-Block verwenden, indem wir den vom Operator zurückgegebenen Wert überprüfen und mit den Standardtypwerten vergleichen. Wir verwenden den Operator === zum Vergleich, da er Typprüfungen der Operanden an beiden Enden des Operators beinhaltet.
var a = 'hello';
if (typeof a === 'string') {
console.log(true)
}
Ausgabe:
true
Ebenso können wir bedingte Prüfungen für Zahl, boolean, Objekt und sogar für Funktion durchführen. Als Best Practice sollten wir eine konstante Variable für die Standarddatentypen erstellen, die vom Javascript-Operator typeof zurückgegeben werden. Vergleichen Sie dann den typeof einer Variablen mit den deklarierten Konstanten. Dieser Ansatz erleichtert das Programmieren und reduziert Tippfehler beim Schreiben der Bedingungsblöcke, die normalerweise nicht auf einen Blick fallen. Lesen Sie den folgenden Code zum besseren Verständnis.
const STRING_TYPE = 'string';
const NUMBER_TYPE = 'number';
var a = 'hello';
var b = 123;
if (typeof a === STRING_TYPE) {
console.log(true)
}
if (typeof b === NUMBER_TYPE) {
console.log(true)
}
Ausgabe:
true
true
Notiz:
- In Fällen, in denen eine Variable mit einem
newSchlüsselwort zugewiesen wurde, betrachtet Javascript eine solche Zuweisung als Objekt. Daher gibt der Operatortypeoffür solche Zuweisungenobjectzurück. Siehe den folgenden Code.
var s = new String('hello');
var n = new Number(100);
console.log(typeof s);
console.log(typeof n);
Ausgabe:
object
object
- Wenn wir eine Funktion mit dem Schlüsselwort
newzuweisen, dann wird der Datentyp solcher Variablen von Javascript als Funktion übernommen. Die Variabletypeofmitnew function()wird alsfunctionanstelle vonobjectzurückgegeben. Schauen wir uns den folgenden Code an.
var fn = new Function();
Ausgabe:
"function"
- Alle Browser unterstützen den Javascript-Operator
typeof, auch die alten Versionen des Internet Explorers. Somit können wir den Operator bedenkenlos in einem auf mehreren Browsern unterstützten Projekt verwenden.