JavaScript-type van
In JavaScript zijn er 5 verschillende datatypes die waarden kunnen bevatten:
string
number
boolean
object
function
Er zijn 6 soorten objecten:
Object
Date
Array
String
Number
Boolean
En 2 gegevenstypen die geen waarden kunnen bevatten:
null
undefined
Het type operator:
U kunt de typeof
operator gebruiken om het gegevenstype van een JavaScript-variabele te vinden.
Voorbeeld
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"
Let op:
- Het gegevenstype van NaN is getal
- Het gegevenstype van een array is object
- Het gegevenstype van een datum is object
- Het gegevenstype van null is object
- Het gegevenstype van een ongedefinieerde variabele is ongedefinieerd *
- Het gegevenstype van een variabele waaraan geen waarde is toegewezen, is ook niet gedefinieerd *
U kunt niet gebruiken typeof
om te bepalen of een JavaScript-object een array (of een datum) is.
Primitieve gegevens
Een primitieve gegevenswaarde is een enkele eenvoudige gegevenswaarde zonder aanvullende eigenschappen en methoden.
De typeof
operator kan een van deze primitieve typen retourneren:
string
number
boolean
undefined
Voorbeeld
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)
Complexe gegevens
De typeof
operator kan een van de twee complexe typen retourneren:
function
object
De typeof
operator retourneert "object" voor objecten, arrays en null.
De typeof
operator retourneert geen "object" voor functies.
Voorbeeld
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"
De typeof
operator retourneert " object
" voor arrays omdat in JavaScript arrays objecten zijn.
Het gegevenstype van het type
De typeof
operator is geen variabele. Het is een exploitant. Operators ( + - * / ) hebben geen gegevenstype.
Maar de typeof
operator retourneert altijd een tekenreeks (met het type operand).
De constructeur Property
De constructor
eigenschap retourneert de constructorfunctie voor alle JavaScript-variabelen.
Voorbeeld
"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]}
U kunt de eigenschap constructor controleren om te zien of een object een is Array
(bevat het woord "Array"):
Voorbeeld
function isArray(myArray) {
return myArray.constructor.toString().indexOf("Array") > -1;
}
Of nog eenvoudiger, u kunt controleren of het object een matrixfunctie is :
Voorbeeld
function isArray(myArray) {
return myArray.constructor
=== Array;
}
U kunt de constructoreigenschap controleren om erachter te komen of een object een is
Date
(bevat het woord "Date"):
Voorbeeld
function isDate(myDate) {
return myDate.constructor.toString().indexOf("Date") > -1;
}
Of nog eenvoudiger, u kunt controleren of het object een datumfunctie is :
Voorbeeld
function isDate(myDate) {
return myDate.constructor === Date;
}
Niet gedefinieerd
In JavaScript heeft een variabele zonder waarde de waarde undefined
. Het type is ook undefined
.
Voorbeeld
let car; // Value is undefined,
type is undefined
Elke variabele kan worden geleegd door de waarde in te stellen op undefined
. Het type zal ook undefined
.
Voorbeeld
car = undefined; // Value is undefined,
type is undefined
Lege waarden
Een lege waarde heeft niets te maken met undefined
.
Een lege string heeft zowel een legale waarde als een type.
Voorbeeld
let car = ""; //
The value is
"", the typeof is "string"
Nul
In JavaScript null
is "niets". Het moet iets zijn dat niet bestaat.
Helaas is in JavaScript het gegevenstype van null
een object.
Je kunt het beschouwen als een bug in JavaScript dat typeof null
een object is. Het zou moeten zijn null
.
U kunt een object leegmaken door het in te stellen op null
:
Voorbeeld
let person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
person = null; //
Now value is null,
but type is still an object
U kunt een object ook leegmaken door het in te stellen op undefined
:
Voorbeeld
let person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
person = undefined; //
Now both value and type is undefined
Verschil tussen ongedefinieerd en nul
undefined
en null
zijn gelijk in waarde maar verschillend in type:
typeof undefined
// undefined
typeof null
// object
null === undefined
// false
null == undefined
// true