09-真值和假值
真值和假值
很多编程语言都有“真”值和“假”值的概念,甚至在连布尔值都不存在的C语言中,数字0代表false,所有非0数字代表true。JavaScript有些类似,不过它可以使用任何类型,这样一来,就可以有效地将任意值归类为真值或者假值。下面的值在JavaScript中都代表false:
undefined。null。false。0。NaN。''(空字符串)。
除了上面的值,其他值都为真。由于为真的东西太多了,这里就不一一列举了。不过下面这些是需要掌握的:
- 所有对象(包括
valueOf()方法返回false的对象)。 - 所有数组(空数组也是)。
- 仅仅包含空格的字符串(比如
" ")。 - 字符串
"false"。
字符串 "false" 的值为true这点会使一些人觉得困惑,但对于大多数人来说,这些区别是很容易理解的,通常也会容易记住和使用。有一个需要特别注意的情况是:空数组也为真。如果想让空数组arr的值为假,使用 arr.length (空数组返回0,0代表假)可以达到目的。