布尔值代表真或假,开或关,是或否。在这个类型中只有两个值:true和false。
JavaScript中的布尔值通常是比较操作的结果。例如:
a === 4
上面的代码测试变量a
的值是否等于数字4。如果是,返回true;否则返回false。
布尔值在JavaScript的控制结构中经常被使用。例如,在if/else语句中,当布尔值为true时执行一个操作,当布尔值为false时执行另一个操作。我们通常会将产生布尔值的比较表达式直接放在使用这些值的语句中。代码可能如下所示:
if (a === 4) {
b = b + 1;
} else {
a = a + 1;
}
上面的代码检查a
是否等于4。如果是,将b
增加1;否则,将a
增加1。
JavaScript中的任何值都可以转换为布尔值。以下值将被转换为(并且可以被用作)布尔值false
:
undefined
null
0
-0
NaN
// 空字符串
""
(程序员的软技能:ke.qq.com/course/6034346)
其他所有值,包括所有对象(和数组),都会被转换为(可以被用作)布尔值true
。值false
和可以转换为它的6个值有时被称为“falsy”值,而其他所有值都被称为“truthy”值。在任何期望布尔值的JavaScript上下文中,falsy值可以被视为false,而truthy值可以被视为true。
例如,假设变量o
保存了一个对象或值null
。您可以这样测试是否非空:
if (o !== null) ...
通过使用非严格不等号运算符!==
来比较o
和null
,结果将是true或false。然而,您也可以省略比较,直接依赖于null是falsy而对象是truthy的事实:
if (o) ...
在第一种情况下,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。例如:
if ((x === 0 && y === 0) || !(z === 0)) {
// 要么x和y都是0,要么z不是0
}
(程序员的软技能:ke.qq.com/course/6034346)
标签:操作数,false,布尔值,JavaScript,null,true From: https://www.cnblogs.com/web-666/p/17650094.html