Don’t know how to type? Get a typewriter.
So, you know there are types. And, you also know that there can be many a problem in the lousy world of loose typing. (I just felt like the next S waxing such eloquence).
The only choice to make here is to know more about how to convert from one type to other, and remain type-safe. And, that will quickly become second nature to your programming style.
When and where should I use type casting?
It is a good practice to use type conversion wherever you are not in control of the types. For e.g. you are processing user data, working with unreliable data that has changed shape over years, receiving data from an external program, etc.
How should I type cast?
Converting types is a simple affair.
From _ to String
42.toString(); //"42" String(true); //"true" String(undefined);//"undefined"
From _ to Number
This is radically different from string.
Number("0"); // 0 "24".toNumber(); // 24 Number("abc"); //NaN // NaN = not a number Number(true); // 1
Did I say radically different? Yes - that referred to using ‘Number’ instead of ‘String’, and not using toNumber - that is radical.
There are additional helper functions like -
parseInt("42life"); //42 parseFloat("3.14pi"); //3.14
.. that can level-up your casting.
From _ to Boolean
Following the tradition established by now, you will understand that the following is used for Boolean.
Boolean("a"); // true Boolean(null); // false
While on the topic of type conversions and checking for the ‘truth’, you may have noticed that
1, non-null string, and a boolean
true are all the same.
We use such things inter-operably in the
if/else and other loop checks.
if ("apple") want("orange"); if (false) justDoItAgain(); if (1) stopThisAlready();
** Aside: You may need help more than you think if you did what you were told here. You should head over to MDN to know more about types, not a not-so-entertaining, silly post.