3.3. Boolean ValuesThe number and string datatypes have a large or infinite number of possible values. The boolean datatype, on the other hand, has only two. These two values are represented by the literals TRue and false. A value of type boolean represents a truth value; it says whether something is true or not. Boolean values are generally the result of comparisons you make in your JavaScript programs. For example: a == 4 This code tests to see whether the value of the variable a is equal to the number 4. If it is, the result of this comparison is the boolean value true. If a is not equal to 4, the result of the comparison is false. Boolean values are typically used in JavaScript control structures. For example, the if/else statement in JavaScript performs one action if a boolean value is TRue and another action if the value is false. You usually combine a comparison that creates a boolean value directly with a statement that uses it. The result looks like this: if (a == 4) b = b + 1; else a = a + 1; This code checks whether a equals 4. If so, it adds 1 to b; otherwise, it adds 1 to a. Instead of thinking of the two possible boolean values as TRue and false, it is sometimes convenient to think of them as on (TRue) and off (false), or yes (TRue) and no (false). 3.3.1. Boolean Type ConversionsBoolean 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".
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; |