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.