This site is mobile accessible. Press the "Tap Here" button to use a different font-size.
Smartphone icons created by Freepik - Flaticon
JavaScript variables can be converted to a new variable and another data type:
You can use the
operator to find the data type of a JavaScript variable.typeof "John" // Returns "string" typeof 3.14 // Returns "number" typeof NaN // Returns "number" typeof false // Returns "boolean" typeof [1,2,3,4] // Returns "object" typeof {name:'John', age:34} // Returns "object" typeof new Date() // Returns "object" typeof function () {} // Returns "function" typeof myCar // Returns "undefined" * typeof null // Returns "object"
Please observe:
You cannot use
to determine if a JavaScript object is an array (or a date).The
property returns the constructor function for all JavaScript variables."John".constructor // Returns function String() {[native code]} (3.14).constructor // Returns function Number() {[native code]} false.constructor // Returns function Boolean() {[native code]} [1,2,3,4].constructor // Returns function Array() {[native code]} {name:'John',age:34}.constructor // Returns function Object() {[native code]} new Date().constructor // Returns function Date() {[native code]} function () {}.constructor // Returns function Function(){[native code]}
You can check the constructor property to find out if an object is an
(contains the word "Array"):function isArray(myArray) { return myArray.constructor.toString().indexOf("Array") > -1; }
Or even simpler, you can check if the object is an Array function:
function isArray(myArray) { return myArray.constructor === Array; }
You can check the constructor property to find out if an object is a
(contains the word "Date"):function isDate(myDate) { return myDate.constructor.toString().indexOf("Date") > -1; }
Or even simpler, you can check if the object is a Date function:
function isDate(myDate) { return myDate.constructor === Date; }
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
does the same.x.toString() (123).toString() (100 + 23).toString()
In the chapter Number Methods, you will find more methods that can be used to convert numbers to 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 |
The global method
can convert booleans to strings.String(false) // returns "false" String(true) // returns "true"
The Boolean method
does the same.false.toString() // returns "false" true.toString() // returns "true"
The global method
can convert dates to strings.String(Date()) // returns "Thu Jul 17 2014 15:38:19 GMT+0200 (W. Europe Daylight Time)"
The Date method
does the same.Date().toString() // returns "Thu Jul 17 2014 15:38:19 GMT+0200 (W. Europe Daylight Time)"
In the chapter Date Methods, you will find more methods that can be used to convert 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) |
Number("3.14") // returns 3.14 Number(" ") // returns 0 Number("") // returns 0 Number("99 88") // returns NaN
In the chapter Number Methods, you will find more methods that can be used to convert strings to numbers:
Method | Description |
---|---|
parseFloat() | Parses a string and returns a floating point number |
parseInt() | Parses a string and returns an integer |
The unary + operator can be used to convert a variable to a number:
var y = "5"; // y is a string var x = + y; // x is a number
If the variable cannot be converted, it will still become a number, but with the value
(Not a Number):var y = "John"; // y is a string var x = + y; // x is a number (NaN)
The global method
can also convert booleans to numbers.Number(false) // returns 0 Number(true) // returns 1
The global method
can be used to convert dates to numbers.d = new Date(); Number(d) // returns 1404568027739
The date method
does the same.d = new Date(); d.getTime() // returns 1404568027739
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
JavaScript automatically calls the variable's
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"
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 | Try it |
---|---|---|---|---|
false | 0 | "false" | false | Try it |
true | 1 | "true" | true | Try it |
0 | 0 | "0" | false | Try it |
1 | 1 | "1" | true | Try it |
"0" | 0 | "0" | true | Try it |
"000" | 0 | "000" | true | Try it |
"1" | 1 | "1" | true | Try it |
NaN | NaN | "NaN" | false | Try it |
Infinity | Infinity | "Infinity" | true | Try it |
-Infinity | -Infinity | "-Infinity" | true | Try it |
"" | 0 | "" | false | Try it |
"20" | 20 | "20" | true | Try it |
"twenty" | NaN | "twenty" | true | Try it |
[ ] | 0 | "" | true | Try it |
[20] | 20 | "20" | true | Try it |
[10,20] | NaN | "10,20" | true | Try it |
["twenty"] | NaN | "twenty" | true | Try it |
["ten","twenty"] | NaN | "ten,twenty" | true | Try it |
function(){} | NaN | "function(){}" | true | Try it |
{ } | NaN | "[object Object]" | true | Try it |
null | 0 | "null" | false | Try it |
undefined | NaN | "undefined" | false | Try it |
Eventually the navigation links, above, will be replaced by these (previous) and (next) buttons below.
JavaScript icons used in the buttons provided by ICONS8.COM. Smartphone icons created by Freepik - Flaticon