We'll also learn about data type conversion and detection!
Unsurprisingly, the number type represents numbers.
NaN(stands for "not a number", but is considered a number)
const favoriteNumber = 42;
You can use certain methods on numbers.
> 3.14159.toFixed(2); "3.14"
As you've seen, the string type represents text.
const greeting = "hello, world!";
You can use certain methods on strings.
> "hello".toUpperCase(); "HELLO" > "hello".charAt(2); "l" > "hello".toUpperCase().charAt(2); "L"
Booleans can only hold 2 possible values —
> 5 > 3; true > 5 > 10; false > "hello".charAt(2) === "e"; false > const enrolledAtEpicodus = true; > enrolledAtEpicodus; true
You'll discover soon just how important booleans are to programming.
The undefined data type has only one possible value:
When declaring a variable without giving it a value (
undefined. Even when declaring a variable and assigning it a value at the same time (
undefined, before then assigning it the value to the right of the equals sign. This is kind of a subtle point, so don't worry too much about it at the moment.
Additionally, there are some functions and methods that do not return any value, in which case the return value is actually
undefined. You'll learn more about this when we learn how to write our own methods and functions.
It's important to understand the difference between the number
5 and the string
"5". To the computer, they are two entirely different things, as illustrated by this example:
> const myNumber = 5; > const myOtherNumber = 10; > const myText = "5"; > const myOtherText = "10"; > myNumber + myOtherNumber; 15 > myText + myOtherText; "510"
When we added
5 we got 15, but when we added
"5" it concatenated the two strings together.
Likewise, the boolean
true is not the same as the string
In the example above, somewhat confusingly, the
+ operator works on both numbers and strings — just with different results. However, methods will only work on a specific data type. For example,
48432.78.toFixed(1); works just fine, but trying to do
"48432.78".toFixed(1); results in an error because there is no
String.prototype.toFixed() method that works on a string. In other words,
String.prototype.toFixed() is not.
"hello".charAt(2); works, but
314159.charAt(2) does not. This is because
Number.prototype.charAt() is not.
We can check the data type of a variable or value with the
> typeof 5; "number" > typeof "5"; "string" > typeof true; "boolean" > typeof "true"; "string" > const greeting = "hello world"; > typeof greeting; "string"
Visit this link for the reference page on the
Often we'll need to convert data types in order to manipulate them or use them in a way that works for our program. Let's look at a few different examples now.
As we'll soon learn, input from a web browser will come in as a string and we will need to convert it to a number before working with it.
parseInt() function (we'll cover more on functions soon):
> const inputtedAge = "45"; > inputtedAge; "45" > typeof inputtedAge; "string" > const myAge = parseInt(inputtedAge); > myAge; 45 > typeof myAge; "number"
Note that if you try to use
parseInt() to convert a string not actually containing a number, the result is the number
> const name = "Andrea"; > const nonsense = parseInt(name); > nonsense; NaN
If you need to go the other way around, you can convert a number to a string by calling the
Number.prototype.toString() method on the number:
> const myNumber = 42; > myNumber; 42 > typeof myNumber; "number" > const convertedNumber = myNumber.toString(); > convertedNumber; "42" > typeof convertedNumber; "string"
We can also call the
Number.prototype.toString() on a number directly instead of on a variable that has a number value:
// two dots here is correct > 42..toString(); "42" > (42).toString(); "42"
42.0 there is a decimal point between the 2 and the 0.
42.0.toString() is the shorter version of
(42).toString() for the same results.
You can also convert a boolean to a string by calling the
Boolean.prototype.toString() method on the boolean:
> const enrolledInEpicodus = true; > enrolledInEpicodus; true > typeof enrolledInEpicodus; "boolean" > const convertedBool = enrolledInEpicodus.toString(); > convertedBool; "true" > typeof convertedBool; "string"
We can also call the
Boolean.prototype.toString() on a boolean directly instead of on a variable that has a boolean value:
> false.toString(); "false"
Read more about
Boolean.prototype.toString() by following these links:
Number: A numerical value, like
String: Content inside of quotes. Such as
"This is a string!".
Undefined: An object (such as a variable) without a defined value.
Null: For now, know that this represents nothingness. We'll explore this more later.
parseInt(): Converts a string to a number.
Number.prototype.toString(): Converts a number to a string.
Boolean.prototype.toString(): Converts a boolean to a string.
To check the data type of a variable or value:
> typeof 5; "number"
To convert a string to a number:
> const myNumber = parseInt("42") > myNumber; 42
To convert a number to a string:
> const convertedNumber = 42..toString(); > convertedNumber; "42"
To convert a boolean to a string:
> const convertedBool = true.toString(); > convertedBool; "true"