JavaScript Type Conversion
- Converting Strings to Numbers
- Converting Numbers to Strings
- Converting Dates to Numbers
- Converting Numbers to Dates
- Converting Booleans to Numbers
- Converting Numbers to Booleans
JavaScript Type Conversion
JavaScript variables can be changed into a different variable with a different data type.
- By the use of a JavaScript function
- Automatically by JavaScript itself
Converting Strings to Numbers
The Number() method in JavaScript globally changes a variable or value into a number.
A number written as digits (like 3.14) changes into its numerical form (like 3.14).
An empty string (like) converts to 0.
A string without numbers, such as "John," changes into NaN
(Not a Number).
Number Methods
In the section Number Methods, you can discover additional techniques for transforming strings into numerical values.
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
You can use the unary + operator to change a variable into a number.
If the variable can't be converted, it will turn into a number, but the value will be NaN
(Not a Number).
Converting Numbers to Strings
The worldwide function called String()
in JavaScript can change numbers into strings.
It can be used on any type of numbers, literals, variables, or expressions:
The toString()
method in JavaScript can also achieve the same result.
More Methods
In the Number Methods section, you'll discover additional techniques for transforming numbers into strings.
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 Number()
method in JavaScript can change dates into numbers.
d = new Date();
Number(d) // returns 1404568027739
The method getTime()
in JavaScript does a similar thing with dates.
d = new Date();
d.getTime() // returns 1404568027739
Converting Dates to Strings
The String() method in JavaScript can change dates into strings.
String(Date()) // returns "Thu Jul 17 2014 15:38:19 GMT+0200 (W. Europe Daylight Time)"
The Date method toString()
does the same.
Example
Date().toString() // returns "Thu Jul 17 2014 15:38:19 GMT+0200 (W. Europe Daylight Time)"
In the Date Methods
section, there are additional methods available for converting dates to strings.
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 Number() method in JavaScript can transform boolean values into numbers.
Number(false) // returns 0
Number(true) // returns 1
Converting Booleans to Strings
The String() method in JavaScript can change boolean values into strings.
String(false) // returns "false"
String(true) // returns "true"
The Boolean method toString()
does the same.
false.toString() // returns "false"
true.toString() // returns "true"
Automatic Type Conversion
In JavaScript, if you try to perform an operation on a data type that doesn't match what's expected, JavaScript will attempt to convert the value to the correct type.
The result is not always what you expect:
Automatic String Conversion
JavaScript will automatically use the toString()
function when you attempt to display an object or a variable.
document.getElementById("demo").innerHTML = myVar;
// if myVar = {name:"Fjohn"} // toString converts to "[object Object]"
// if myVar = [1,2,3,4] // toString converts to "1,2,3,4"
// if myVar = new Date() // toString converts to "Fri Jul 18 2014 09:08:55 GMT+0200"
Numbers and booleans can also be changed to a different variable or data type, but this may not be easily noticeable.
// if myVar = 123 // toString converts to "123"
// if myVar = true // toString converts to "true"
// if myVar = false // toString converts to "false"
JavaScript Type Conversion Table
This table displays how various JavaScript values can be changed into Number, String, and Boolean types.
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.
Red values highlight values that programmers may find unexpected.