Typ einer Variablen in JavaScript abrufen
-
Verwenden des Operators
typeof
zum Ermitteln des Variablentyps -
Verwendung des Operators
typeof
in 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
:typeof
gibtstring
für einen Variablentyp string zurück.number
: Gibtnumber
für eine Variable zurück, die einen Integer- oder Gleitkommawert enthält.boolean
: Für eine Variable mittrue
oderfalse
Werten gibttypeof
boolean
zurück.undefined
: Falls wir einer Variablen keine Werte zuweisen, wird der Typ der Variablen von JavaScript alsundefined
markiert. Daher gibt der Operandtypeof
für solche nicht deklarierten Variablenundefined
zurück.object
: Für Variablen, die ein Array oder ein Objekt in{}
enthalten, oder Variablen, denen der Wertnull
zugewiesen ist, betrachtet Javascript den Typ solcher Variablen als Objekt. Daher gibt der Operandtypeof
object
zurück.function
: JavaScript ermöglicht es uns, einer Variablen Funktionen zuzuweisen. In solchen Fällen ist der Typ solcher VariablenFunktion
. Der Operatortypeof
gibtfunction
fü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
new
Schlüsselwort zugewiesen wurde, betrachtet Javascript eine solche Zuweisung als Objekt. Daher gibt der Operatortypeof
für solche Zuweisungenobject
zurü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
new
zuweisen, dann wird der Datentyp solcher Variablen von Javascript als Funktion übernommen. Die Variabletypeof
mitnew function()
wird alsfunction
anstelle vonobject
zurü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.