JavaScript中的布尔值
布尔值代表真或假,开或关,是或否。在这个类型中只有两个值:true和false。
JavaScript中的布尔值通常是比较操作的结果。例如:
上面的代码测试变量a的值是否等于数字4。如果是,返回true;否则返回false。
布尔值在JavaScript的控制结构中经常被使用。例如,在if/else语句中,当布尔值为true时执行一个操作,当布尔值为false时执行另一个操作。我们通常会将产生布尔值的比较表达式直接放在使用这些值的语句中。代码可能如下所示:
上面的代码检查a是否等于4。如果是,将b增加1;否则,将a增加1。
JavaScript中的任何值都可以转换为布尔值。以下值将被转换为(并且可以被用作)布尔值false:
(程序员的软技能:ke.qq.com/course/6034346)
其他所有值,包括所有对象(和数组),都会被转换为(可以被用作)布尔值true。值false
例如,假设变量o保存了一个对象或值null。您可以这样测试是否非空:
通过使用非严格不等号运算符!==来比较o和null,结果将是true或false。然而,您也可以省略比较,直接依赖于null是falsy而对象是truthy的事实:
在第一种情况下,if语句的主体只在o不是null时执行。第二种情况不那么严格 - 只要o不是false或任何其他falsy值(如null或undefined),主体就会执行。选择哪种if语句适合您的程序取决于您希望在o中存储什么值。如果您需要区分null和0或"",那么使用比较表达式是合适的。
布尔值具有toString()方法,将它们转换为字符串"true"或"false"。除了这个非常简单的API外,还有三个重要的布尔运算符。
&&运算符执行布尔与操作。它只在两个操作数都为true时评估为true;如果任何操作数为false,则结果为false。||运算符执行布尔或操作。如果任何一个操作数为true,则评估为true;只有在两个操作数都为false时,结果才为false。一元!运算符执行布尔非操作。如果操作数为false,则结果为true;如果操作数为true,则结果为false。例如:
(程序员的软技能:ke.qq.com/course/6034346)

