3.3.1. Boolean Type Conversions
Boolean values are easily convertible to and from other types and are often automatically converted.[*] If a boolean value is used in a numeric context, true converts to the number 1 and false converts to the number 0. If a boolean value is used in a string context, true converts to the string "true" and false converts to the string "false".
[*] C programmers should note that JavaScript has a distinct boolean datatype, unlike C, which simply uses integer values to simulate Boolean values. Java programmers should note that although JavaScript has a boolean type, it is not nearly as pure as the Java boolean datatype; JavaScript boolean values are easily converted to and from other datatypes, and so in practice, the use of boolean values in JavaScript is much more like their use in C than in Java.
If a number is used where a boolean value is expected, the number is converted to TRue unless the number is 0 or NaN, which are converted to false. If a string is used where a boolean value is expected, it is converted to true except for the empty string, which is converted to false. null and the undefined value convert to false, and any non-null object, array, or function converts to true.
If you prefer to make your type conversions explicit, you can use the Boolean( ) function:
var x_as_boolean = Boolean(x);
Another technique is to use the Boolean NOT operator twice:
var x_as_boolean = !!x;