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.