Learn how to convert data types in JavaScript
In JavaScript, although it is a loosely typed language, there may be instances where you need to convert values from one type to another.
JavaScript has these primitive types:
- Number
- String
- Boolean
- Symbol
and the object type:
- Object
(plus null and undefined, but there’s no point in casting from/to them)
Let’s explore different techniques for converting from one type to another. We’ll cover the most common scenarios.
Converting to Strings
In general, converting from any type to a string in JavaScript is usually done by calling the toString()
method on a value or using the String()
global function.
Casting from a Number to a String
You can use the String()
global function or the toString()
method on the Number type:
String(10) //"10"
(10).toString() //"10"
Casting from a Boolean to a String
You can use the String()
global function or the toString()
method on the Boolean type:
String(true) //"true"
true.toString() //"true"
String(false) //"false"
false.toString() //"false"
Casting from a Date to a String
You can use the String()
global function or the toString()
method on the Date type:
String(new Date('2019-01-22'))
//"Tue Jan 22 2019 01:00:00 GMT+0100 (Central European Standard Time)"
(new Date('2019-01-22')).toString()
//"Tue Jan 22 2019 01:00:00 GMT+0100 (Central European Standard Time)"
Special Cases with Strings
String(null) //"null"
String(undefined) //"undefined"
String(NaN) //"NaN"
Converting to Numbers
Casting from a String to a Number
You can use the Number()
global function to convert a string to a number. JavaScript will handle the conversion automatically:
Number("1") //1
Number("0") //0
Strings are trimmed before being converted to numbers:
Number(" 1 ") //1
An empty string defaults to 0:
Number("") //0
To work with decimals, use a dot notation:
Number("12.2")
If a string contains invalid characters, it will generate NaN
.
To learn more about converting strings to numbers in JavaScript, check out our guide on how to convert a string to a number in JavaScript. There are other methods available, such as parseInt()
, parseFloat()
, Math.floor()
, and the unary +
operator.
Casting from a Boolean to a Number
Similar to casting to a string, passing a boolean to Number()
will return either 0 or 1:
Number(true) //1
Number(false) //0
Casting from a Date to a Number
If you pass a Date object to Number()
, it will return the date timestamp, which is the best way to convert a date to a number.
Special Cases with Numbers
Number(null) //0
Number(undefined) //NaN
Number(NaN) //NaN
Converting to Booleans
You can convert any value to a boolean by passing it to the Boolean()
function.
All values will resolve to true
except for:
Boolean(false) //false
Boolean(0) //false
Boolean(NaN) //false
Boolean("") //false
Boolean(null) //false
Boolean(undefined) //false