Converting Data Types
As we’ve seen in the previous article, data types are classifications of a particular type of data. And it’s the type that determines which operations are able to be performed on the data. As we write programs, we’ll often need to convert our data types in order to perform tasks.
"15" - "5" // 10 "15" / "3" // 5
The above will work as our strings evaluate to numbers. However,
"5" + "5" // 55
If we’re using the
+ operator, the strings will concatenate! So if we attempted to rely on type coercion in this case, we’d see unexpected results.
For this reason, when writing our own code, we should endeavor to convert data types ourselves — thus reducing potential errors.
Let's now take a look at how we can go about that!
Converting Values to Strings
String() method, we can explicitly convert values to strings.
For example, let's take the number 100 and convert it to a string literal “100”.
String(100); // "100"
And let's convert a Boolean false into a string literal “false”.
String(false); // "false"
Within a variable, we can convert our value to a string like so:
let name = 5000; // 5000 name = String(name); // "5000"
We can check the data type of any value, using
typeof, for example:
typeof name; // string
Alternatively, we could do this more concisely like so:
let name = 5000; name.toString(); // "5000" (5000).toString(); // also returns "5000"
Regardless of the method we choose, by using
n.toString(), we can explicitly convert our data into string values.
Converting Values to Numbers
When the time comes to convert values into numbers, we use the
Number() method in a similar manner:
Number("2000"); // 2000
We’ve turned our string “2000” into the number 2000.
We could also convert a Boolean:
Number(true); // 1 Number(false); // 0
It should be noted however, that we cannot convert our data type into a number if there are any characters or spaces within the string! If this were to be attempted a
NaN (not a number) would be returned.
Number("one"); // NaN Number("1,000"); // NaN Number("1 1"); // NaN Number("01-01-19"); // NaN
Converting Values to Booleans
Boolean() to convert strings and numbers into Boolean.
If any value is present, it will be converted to
Boolean(100); // true Boolean("name"); // true Boolean(" "); // true, a space is considered a value
If the value is considered empty (
empty string (""),
null), it will return false:
Boolean(0); // false Boolean(""); // false, an empty string (with no space) Boolean(undefined); // false Boolean(NaN); // false Boolean(null); // false
Converting numbers and strings into Boolean values is a powerful way to start to introduce logic into our programming. For instance, we could detect a missed required field on an input form, if the Boolean returns false.
That's all for today!
In this article, we looked at how we can work with data types, using both type coercion as well as by implicitly performing our own type conversions.
In the next one, we'll dive right into working with strings!