JavaScript 布尔值(Boolean)
-
JavaScript布尔值
JavaScript布尔值表示两个值之一:true或false。通常,在编程中,您将需要一种只能具有两个值之一的数据类型,例如:是/否,开/关,真/假。为此,JavaScript具有布尔数据类型。它只能取值true或false。 -
-
比较和条件
本教程的后面章节还提供了比较运算符的完整概述和条件语句的完整概述。这里有些例子:操作符 描述 例子 == 相等 if (day == "Monday") > 大于 if (salary > 9000) < 小于 if (age < 18) 布尔值是所有JavaScript表达式比较和条件判断的基础。
-
具有“值”的一切都是true
尝试一下100 3.14 -15 "Hello" "false" 7 + 1 + 3.14
-
没有“值”的一切都是false
Boolean(0)返回false:
尝试一下var x = 0; Boolean(x); // 返回 false
Boolean(-0)返回false:
尝试一下var x = -0; Boolean(x); // 返回 false
Boolean("")返回false:
尝试一下var x = ""; Boolean(x); // 返回 false
Boolean(undefined)返回false:
尝试一下var x; Boolean(x); // 返回 false
Boolean(null)返回false:
尝试一下var x = null; Boolean(x); // 返回 false
Boolean(false)返回false:
尝试一下var x = false; Boolean(x); // 返回 false
Boolean(NaN)返回false:
尝试一下var x = 10 / "H"; Boolean(x); // 返回 false
-
布尔可以是对象
通常,JavaScript布尔值是从文字创建的原始值:var x = false;但是布尔值也可以用关键字new定义为对象:var y = new Boolean(false);
尝试一下var x = false; var y = new Boolean(false); // typeof x 返回 boolean // typeof y 返回 object
不要创建布尔对象。它会降低执行速度,new关键字使代码复杂化。这会产生一些意想不到的结果:
使用==运算符时,相等的布尔值是相等的:
尝试一下var x = false; var y = new Boolean(false); // (x == y) 返回true , 因为x,y的值相等
使用===运算符时,相等的布尔值不相等,因为===运算符期望类型和值都相等。
尝试一下var x = false; var y = new Boolean(false); // (x === y) 返回true , 因为x,y的值相等,类型不等
甚至更糟。对象无法比较:
尝试一下var x = new Boolean(false); var y = new Boolean(false); // (x == y) 返回false , 对象与对象不能比较
注意(x == y)和(x === y)之间的差异。比较两个JavaScript对象将始终返回false。
完整的布尔参考,请参考参考手册。