It is one of the most important feature of JavaScript that converts data of one type to another type. It is automatically performed when the data type of variable is changed or performing operations on values of different type.
For example: The expression 5+ “6” on execution will result in 56. It is because , in arithmetic addition if one of the operand is of string type then JavaScript automatically converts the other into string type.
How do you convert data type?
Data types can be converted either implicitly or explicitly. Implicit conversions are not visible to the user. SQL Server automatically converts the data from one data type to another. For example, when a smallint is compared to an int, the smallint is implicitly converted to int before the comparison proceeds.
JavaScript Type Conversion Table
The table shows the conversion of different values to String, Number, and Boolean in JavaScript
Value | String conversion | Number coversion | Boolean conversion |
1 | “1” | 1 | True |
0 | “0” | 0 | false |
“1” | “1” | 1 | true |
“0” | “0” | 0 | true |
“ten” | “ten” | 1 | true |
true | “true” | 0 | true |
false | “false” | “null” | false |
null | “null” | 1 | false |
undefined | “undefined” | 1 | false |
“ | “” | 0 | true |
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 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()
can convert strings to numbers. Strings containing numbers (like “3.14”) convert to numbers . Empty strings convert to 0. Anything else converts to NaN
(Not a Number).
Number("3.14") // returns 3.14
Number(" ") // returns 0
Number("") // returns 0
Number("99 88") // returns NaN
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 |
parse Float() | Parses a string and returns an integer |
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
let y = "5"; // y is a string let x = + y; // x is a number
If the variable cannot be converted, it will still become a number, but with the value NaN
(Not a Number):
Example
let y = "John"; // y is a string let x = + y; // x is a number (NaN)
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
String(x) // returns a string from a number variable x String(123) // returns a string from a number literal 123 String(100 + 23) // returns a string from a number from an expression
The Number method toString()
does the same.
Example
x.toString() (123).toString() (100 + 23).toString() ________________________________________
Converting Dates to Numbers
The global method Number()
can be used to convert dates to numbers
d = new Date();
Number(d) // returns 1404568027739
The date method getTime()
does the same
d = new Date();
d.getTime() // returns 1404568027739
________________________________________
Converting Dates to Strings
The global method String()
can convert dates to 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)"
Converting Booleans to Numbers
The global method Number()
can also convert booleans to numbers.
Number(false) // returns 0
Number(true) // returns 1
Converting Booleans to Strings
The global method String()
can convert booleans to 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
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:
5 + null // returns 5 because null is converted to 0 "5" + null // returns "5null" because null is converted to "null" "5" + 2 // returns "52" because 2 is converted to "2" "5" - 2 // returns 3 because "5" is converted to 5 "5" * "2" // returns 10 because "5" and "2" are converted to 5 and 2
Automatic String Conversion
JavaScript automatically calls the variable’s toString()
function when you try to “output” 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 are also converted, but this is not very visible:
// if myVar = 123 // toString converts to "123" // if myVar = true // toString converts to "true" // if myVar = false // toString converts to "false"