MDN’s new design is in Beta! A sneak peek: https://blog.mozilla.org/opendesign/mdns-new-design-beta/

typeof

Deze vertaling is niet volledig. Help dit artikel te vertalen vanuit het Engels.

De typeof operator retourneert een string die het type van de ongeëvalueerde operand weergeeft.

Syntax

The typeof operator wordt gevolgd door zijn operand:

typeof operand

Parameters

operand is een uitdrukking die het object of de primitive voorstelt waarvan het type moet worden geretourneerd.

Beschrijving

De volgende tabel vat de mogelijke waardes die typeof kan retourneren. Voor meer informatie over types of primitives, zie pagina JavaScript data structure.

Type Resultaat
Undefined "undefined"
Null "object" (see below)
Boolean "boolean"
Number "number"
String "string"
Symbol (nieuw in ECMAScript 2015) "symbol"
Host object (voorzien door de JS omgeving) Implementatie-afhankelijk
Function object (implementeert [[Call]] in termen van ECMA-262) "function"
Elk ander object "object"

 

Voorbeelden

// Nummers
typeof 37 === 'number';
typeof 3.14 === 'number';
typeof(42) === 'number';
typeof Math.LN2 === 'number';
typeof Infinity === 'number';
typeof NaN === 'number'; // Despite being "Not-A-Number"
typeof Number(1) === 'number'; // but never use this form!


// Strings
typeof "" === 'string';
typeof "bla" === 'string';
typeof (typeof 1) === 'string'; // typeof always returns a string
typeof String("abc") === 'string'; // but never use this form!


// Booleans
typeof true === 'boolean';
typeof false === 'boolean';
typeof Boolean(true) === 'boolean'; // but never use this form!


// Symbolen
typeof Symbol() === 'symbol'
typeof Symbol('foo') === 'symbol'
typeof Symbol.iterator === 'symbol'


// Ongedefinieerd
typeof undefined === 'undefined';
typeof declaredButUndefinedVariable === 'undefined';
typeof undeclaredVariable === 'undefined'; 


// Objecten
typeof {a:1} === 'object';

// gebruik Array.isArray of Object.prototype.toString.call
// om het verschil aan te geven tussen normale objecten en
// arrays (rijen).
typeof [1, 2, 4] === 'object';

typeof new Date() === 'object';


// Het volgende is verwarrend. Niet gebruiken!
typeof new Boolean(true) === 'object'; 
typeof new Number(1) === 'object'; 
typeof new String("abc") === 'object';


// Functies
typeof function(){} === 'function';
typeof class C {} === 'function';
typeof Math.sin === 'function';

null

// Dit geldt sinds het ontstaan van JavaScript
typeof null === 'object';

In de oorspronkelijke implementatie van JavaSCript werden JavaScript-waarden gerepresenteerd met een type-label en een waarde. Het type-label voor de meeste objecten was 0. null werd voorgesteld als de NULL pointer (0x00 in de meeste platformen). Bijgevolg had null het type-label 0, wat de foute typeof retourneer-waarde verklaart. (referentie)

Een oplossing (via een opt-in) werd voorgesteld voor ECMAScript, maar die werd afgekeurd. Anders zou het er als volgt hebben uitgezien: typeof null === 'null'.

Reguliere uitdrukkingen

Aanroepbare reguliere uitdrukkingen waren een niet-standaard toevoeging in sommige browsers.

typeof /s/ === 'function'; // Chrome 1-12 Niet comform aan ECMAScript 5.1
typeof /s/ === 'object';   // Firefox 5+  Conform aan ECMAScript 5.1

Specificaties

Specificatie Status Opmerking
ECMAScript 2017 Draft (ECMA-262)
The definition of 'The typeof Operator' in that specification.
Draft  
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'The typeof Operator' in that specification.
Standard  
ECMAScript 5.1 (ECMA-262)
The definition of 'The typeof Operator' in that specification.
Standard  
ECMAScript 3rd Edition (ECMA-262)
The definition of 'The typeof Operator' in that specification.
Standard  
ECMAScript 1st Edition (ECMA-262)
The definition of 'The typeof Operator' in that specification.
Standard Oorspronkelijke definitie. Geïmplementeerd in JavaScript 1.1.

Browser-compatibiliteit

Eigenschap Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basis-ondersteunning (Yes) (Yes) (Yes) (Yes) (Yes)
Eigenschap Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basis-ondersteuning (Yes) (Yes) (Yes) (Yes) (Yes) (Yes)

IE-specifieke opmerkingen

In IE 6, 7, en 8 zijn een groot aantal host objecten objecten en geen functions. bijvoorbeeld:

typeof alert === 'object'

Zie ook

Documentlabels en -medewerkers

 Aan deze pagina hebben bijgedragen: lackodan
 Laatst bijgewerkt door: lackodan,