This article will explain JavaScript variable types and how to find the type of a variable using the typeof operator.
What are Types?
The type of a variable determines what it can or can’t do.
It determines what value the variable may take and what can be done with that value.
For example, a number type variable containing a numeric value can be used in arithmetic. In contrast, a string type variable containing a sequence of words cannot be used in arithmetic calculations, but it can be joined to other strings to create longer strings.
Finding a Variable’s Type in JavaScript
You will usually know what a variable’s type will be in advance – after all, you’ll be the one declaring it and assigning it a value.
On occasion, though, you may not. For example, the value may come from a third-party package, or be retrieved via an API call, or come from user input – and you may want to determine the variable’s type before you try and do something with it.
The typeof Operator
The typeof operator does just that – it tells you the type of a given variable. Here’s the syntax:
typeof operand
Note that:
- typeof is an operator, not a function
- This means that you call it and follow it with a variable or value separated by a space
- operand should be the variable or value you wish to check the type of
- A string will be returned containing the name of the type (See the below table for possible return values)
Variable Type | typeof Output |
---|---|
Undefined | “undefined” |
Null | “object” |
Boolean | “boolean” |
Number | “number” |
BigInt | “bigint” |
String | “string” |
Symbol | “symbol” |
Function object | “function” |
Any other object | “object” |
Examples
Below, you can see what value the typeof operator returns based on various values passed to it:
typeof 32; // 'number' typeof 1.89; // 'number' typeof NaN; // 'number' - this variable should be numeric, but a numeric value was not able to be assigned to it, so it is a number variable with a NaN (Not a Number) value to indicate as such typeof ''; // 'string' typeof 'foo'; // 'string' typeof true; // 'boolean' typeof false; // 'boolean' typeof undefined; // 'undefined' typeof {property: 'value'}; // 'object'
Checking if a Variable is a Certain Type
Based on the output demonstrated above, you can compare the output of typeof to a known value to perform actions based on a variable’s type.
var myVariable = 64; if(typeof myVariable === 'number'){ console.log('The variable is a number') }
This is especially useful when checking that a variable has been assigned a value:
var myVariable; if(typeof myVariable === 'undefined'){ // Variable is undefined, so no value has been defined though the variable has been declared console.log('No value has been assigned to the variable') } else { // Value is assigned, you can do something with the variable here }
For more information on the typeof operator, you can check out the official Mozilla developer resource at:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/typeof