JavaScript Type Conversion
JavaScript variables can be converted to a new variable and another data type:
- By the use of a JavaScript function
- Automatically by JavaScript itself
Converting Strings to Numbers
The global method Number()
converts a variable (or a value) into a number.
A numeric string (like "3.14") converts to a number (like 3.14).
An empty string (like "") converts to 0.
A non numeric string (like "John") converts to NaN
(Not a Number).
Examples
These will convert:
These will not convert:
Number Methods
In the chapter Number Methods, you will find more methods that can be used to convert strings to numbers:
Method | Description |
---|---|
Number() | Returns a number, converted from its argument |
parseFloat() | Parses a string and returns a floating point number |
parseInt() | Parses a string and returns an integer |
The Unary + Operator
The unary + operator can be used to convert a variable to a number:
Example
If the variable cannot be converted, it will still become a number, but with the value NaN
(Not a Number):
Example
Converting Numbers to Strings
The global method String()
can convert numbers to strings.
It can be used on any type of numbers, literals, variables, or expressions:
Example
The Number method toString()
does the same.
Example
More Methods
Method | Description |
---|---|
toExponential() | Returns a string, with a number rounded and written using exponential notation. |
toFixed() | Returns a string, with a number rounded and written with a specified number of decimals. |
toPrecision() | Returns a string, with a number written with a specified length |
Converting Dates to Numbers
The global method Number()
can be used to convert dates to numbers.
The date method getTime()
does the same.
Converting Dates to Strings
The global method String()
can convert dates to strings.
The Date method toString()
does the same.
Example
Method | Description |
---|---|
getDate() | Get the day as a number (1-31) |
getDay() | Get the weekday a number (0-6) |
getFullYear() | Get the four digit year (yyyy) |
getHours() | Get the hour (0-23) |
getMilliseconds() | Get the milliseconds (0-999) |
getMinutes() | Get the minutes (0-59) |
getMonth() | Get the month (0-11) |
getSeconds() | Get the seconds (0-59) |
getTime() | Get the time (milliseconds since January 1, 1970) |
Converting Booleans to Numbers
The global method Number()
can also convert booleans to numbers.
Converting Booleans to Strings
The global method String()
can convert booleans to strings.
The Boolean method toString()
does the same.
Automatic Type Conversion
When JavaScript tries to operate on a "wrong" data type, it will try to convert the value to a "right" type.
The result is not always what you expect:
Automatic String Conversion
JavaScript automatically calls the variable's toString()
function when you try to "output" an object or a variable:
Numbers and booleans are also converted, but this is not very visible:
JavaScript Type Conversion Table
This table shows the result of converting different JavaScript values to Number, String, and Boolean:
Original Value | Converted to Number | Converted to String | Converted to Boolean |
---|---|---|---|
false | 0 | "false" | false |
true | 1 | "true" | true |
0 | 0 | "0" | false |
1 | 1 | "1" | true |
"0" | 0 | "0" | true |
"000" | 0 | "000" | true |
"1" | 1 | "1" | true |
NaN | NaN | "NaN" | false |
Infinity | Infinity | "Infinity" | true |
-Infinity | -Infinity | "-Infinity" | true |
"" | 0 | "" | false |
"20" | 20 | "20" | true |
"twenty" | NaN | "twenty" | true |
[ ] | 0 | "" | true |
[20] | 20 | "20" | true |
[10,20] | NaN | "10,20" | true |
["twenty"] | NaN | "twenty" | true |
["ten","twenty"] | NaN | "ten,twenty" | true |
function(){} | NaN | "function(){}" | true |
{ } | NaN | "[object Object]" | true |
null | 0 | "null" | false |
undefined | NaN | "undefined" | false |
Values in quotes indicate string values.