Typecasting in JavaScript

I may have alluded to this before, in various examples, but I want to make it clear again just in case you missed it. In JavaScript, you sometimes find yourself in a situation where you explicitly need to cast a variable to a Number or a String. Many oldtimers are used to multiplying variables by 1.0 (or adding zero) in order to ‘coerce’ them to a numeric value, and of course it’s common practice to append toString() to a variable to make it behave as a string. But there’s an even cleaner way. Shroud the variable in Number() or String(). For example:

var n = 30; // number
var m = 70; // number
var s = new String();// '3070'
s = String(n) + String(m);
// '100'
s = Number(n) + Number(m);

Now try to guess what the outcome is if you try Number(n) + String(m). If you’ve

done very much JavaScript coding, you know the answer: The combination Number(n) + String(m)

produces a string, ‘3070’.

If you’ve followed everything thus far, you may be interested to know that you can

temporarily cast a variable to a Boolean value with Boolean(). For example:

var n = 50; // number

var b = Boolean(n); // b is 'true'
var c = Boolean(n - 50); // c is 'false'

For extra credit, try figuring out what the following Boolean code evaluates to:

var s = new String(); // null string

var b = Boolean(s); // what is it?

The answer may surprise you. A null string evaluates to true. Unless you shroud it

in Number(), in which case it is false.

You May Also Like

About the Author: Kas Thomas

Leave a Reply