JavaScript-Typ
In JavaScript gibt es 5 verschiedene Datentypen, die Werte enthalten können:
string
number
boolean
object
function
Es gibt 6 Arten von Objekten:
Object
Date
Array
String
Number
Boolean
Und 2 Datentypen, die keine Werte enthalten können:
null
undefined
Der Typ des Operators
Sie können den typeof
Operator verwenden, um den Datentyp einer JavaScript-Variablen zu finden.
Beispiel
typeof "John"
// Returns "string"
typeof 3.14
// Returns "number"
typeof NaN
// Returns "number"
typeof false
// Returns "boolean"
typeof [1,2,3,4] // Returns
"object"
typeof {name:'John', age:34}
// Returns "object"
typeof new Date()
// Returns "object"
typeof function () {} // Returns
"function"
typeof myCar
// Returns "undefined" *
typeof null
// Returns "object"
Bitte beachten:
- Der Datentyp von NaN ist Zahl
- Der Datentyp eines Arrays ist Objekt
- Der Datentyp eines Datums ist Objekt
- Der Datentyp von null ist Objekt
- Der Datentyp einer undefinierten Variablen ist undefiniert *
- Der Datentyp einer unbewerteten Variable ist ebenfalls undefiniert *
Sie können nicht verwenden typeof
, um festzustellen, ob ein JavaScript-Objekt ein Array (oder ein Datum) ist.
Primitive Daten
Ein primitiver Datenwert ist ein einzelner einfacher Datenwert ohne zusätzliche Eigenschaften und Methoden.
Der typeof
Operator kann einen dieser primitiven Typen zurückgeben:
string
number
boolean
undefined
Beispiel
typeof "John" // Returns
"string"
typeof 3.14 // Returns
"number"
typeof true // Returns
"boolean"
typeof false // Returns
"boolean"
typeof x
// Returns "undefined" (if x has no value)
Komplexe Daten
Der typeof
Operator kann einen von zwei komplexen Typen zurückgeben:
function
object
Der typeof
Operator gibt "object" für Objekte, Arrays und null zurück.
Der typeof
Operator gibt "object" nicht für Funktionen zurück.
Beispiel
typeof {name:'John', age:34} // Returns "object"
typeof [1,2,3,4]
// Returns "object" (not "array", see note below)
typeof null // Returns
"object"
typeof function myFunc(){} // Returns "function"
Der typeof
Operator gibt " object
" für Arrays zurück, da Arrays in JavaScript Objekte sind.
Der Datentyp von typeof
Der typeof
Operator ist keine Variable. Es ist ein Operator. Operatoren ( + - * / ) haben keinen Datentyp.
Der typeof
Operator gibt jedoch immer eine Zeichenfolge zurück (die den Typ des Operanden enthält).
Die Konstruktor-Eigenschaft
Die constructor
Eigenschaft gibt die Konstruktorfunktion für alle JavaScript-Variablen zurück.
Beispiel
"John".constructor
// Returns function String() {[native code]}
(3.14).constructor
// Returns function Number() {[native code]}
false.constructor // Returns
function Boolean() {[native code]}
[1,2,3,4].constructor
// Returns function Array() {[native code]}
{name:'John',age:34}.constructor
// Returns function Object() {[native code]}
new Date().constructor
// Returns function Date() {[native code]}
function () {}.constructor // Returns
function Function(){[native code]}
Sie können die Konstruktor-Eigenschaft überprüfen, um herauszufinden, ob ein Objekt ein Array
(enthält das Wort "Array") ist:
Beispiel
function isArray(myArray) {
return myArray.constructor.toString().indexOf("Array") > -1;
}
Oder noch einfacher, Sie können überprüfen, ob das Objekt eine Array-Funktion ist :
Beispiel
function isArray(myArray) {
return myArray.constructor
=== Array;
}
Sie können die Konstruktor-Eigenschaft überprüfen, um herauszufinden, ob ein Objekt ein
Date
(enthält das Wort "Datum") ist:
Beispiel
function isDate(myDate) {
return myDate.constructor.toString().indexOf("Date") > -1;
}
Oder noch einfacher, Sie können überprüfen, ob das Objekt eine Datumsfunktion ist :
Beispiel
function isDate(myDate) {
return myDate.constructor === Date;
}
Nicht definiert
In JavaScript hat eine Variable ohne Wert den Wert undefined
. Der Typ ist auch undefined
.
Beispiel
let car; // Value is undefined,
type is undefined
Jede Variable kann geleert werden, indem der Wert auf gesetzt wird undefined
. Der Typ wird auch sein undefined
.
Beispiel
car = undefined; // Value is undefined,
type is undefined
Leere Werte
Ein leerer Wert hat nichts mit zu tun undefined
.
Eine leere Zeichenfolge hat sowohl einen zulässigen Wert als auch einen Typ.
Beispiel
let car = ""; //
The value is
"", the typeof is "string"
Null
In JavaScript null
ist "nichts". Es soll etwas sein, was es nicht gibt.
Leider ist der Datentyp in JavaScript null
ein Objekt.
Sie können es als Fehler in JavaScript betrachten, typeof null
der ein Objekt ist. Es sollte sein null
.
Sie können ein Objekt leeren, indem Sie es auf Folgendes setzen null
:
Beispiel
let person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
person = null; //
Now value is null,
but type is still an object
Sie können ein Objekt auch leeren, indem Sie es auf Folgendes setzen undefined
:
Beispiel
let person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
person = undefined; //
Now both value and type is undefined
Unterschied zwischen Undefiniert und Null
undefined
und null
sind gleich im Wert, aber unterschiedlich im Typ:
typeof undefined
// undefined
typeof null
// object
null === undefined
// false
null == undefined
// true