JavaScript False值
如果想要理解JavaScript的行为方式,理解这些基础知识是至关重要的。通过理解为什么代码不起作用,你将能够更有效地解决问题,并且帮助你从初级开发者进阶到中级开发者。
在JavaScript中,每个值都有一个底层的布尔值。因此,在使用比较和条件语句时,理解这些数字是true还是false至关重要。
具有False Value的条件语句
JavaScript中的所有值都会被评估为布尔值(true或false)。因此,我们的if语句中的条件可以简化为:
if(false === null)
if(undefined === null)
if(null === null)
if(NaN === null)
if(0 === null)
if("" === null)
if(value === null)
在逻辑运算符中使用False Values
这是一个有趣的示例。要返回值,可以使用运算符||
和&&
。理解哪些值是false和true至关重要。
||
一旦评估到一个真实的表达式,比较将停止。
const or = '' || 'hello';
const or = [] || 'hello';
&&
一旦一个 假表达式 被评估,比较就会结束。
const and = '' && 'hello';
const and = [] && 'hello'
在单元测试中使用错误的值
[false, undefined, NaN].forEach(el =>
expect(funcImTesting(el).to.be('hello world')),
);
现在我们将逐一检查每个示例;
False
False 是一个 布尔值 ,表示没有真实性。您可以使用直接比较的方式,使用 ===
运算符 来验证是否为false:
代码:
if (false === false) {
console.log("This statement will be executed.");
}
输出:
This statement will be executed.
undefined
未初始化的变量或属性用 undefined 表示。您可以使用严格相等来查找 undefined。
代码:
let variable;
if (variable === undefined) {
console.log("This statement will be executed.");
}
输出:
This statement will be executed.
null
对象值 null 表示所有对象值的有意缺失。可以使用等号运算符来检查null:
代码:
let value = null;
if (value === null) {
console.log("This statement will be executed.");
}
输出:
This statement will be executed.
NaN
“Not a Number” (NaN) ,一种特殊的数字,在数学运算中用于表示荒谬或无法定义的值,是 “Not a Number” 的缩写。可以使用 isNaN()函数 来检查是否为 NaN :
Code:
let result = Math.sqrt(-1);
if (isNaN(result)) {
console.log("This statement will be executed.");
}
输出:
This statement will be executed.
0
数字0被认为是假的。您可以使用条件语句来检查 0
代码:
let number = 0;
if (number === 0) {
console.log("This statement will be executed.");
}
输出:
This statement will be executed.
“” 或者空字符串
False 是一个空字符串,用 ''
或 "
表示。可以使用 length 属性来判断一个字符串是否为空:
代码:
let string = '';
if (string.length === 0) {
console.log("This statement will be executed.");
}
结果:
This statement will be executed.
表达式值 === null
如果一个变量的值与null完全等价,则表达式值 === null
可以验证这一点。如果是这样的话,表达式评估结果为 true ,证明值为null。否则,如果值为其他值或未定义,则表达式评估结果为false。
为了演示JavaScript中的假值null,请考虑以下示例:
代码:
let variable1 = null;
let variable2 = "Hello";
if (variable1 === null) {
console.log("This statement will be executed.");
}
if (variable2 === null) {
console.log("This statement will not be executed.");
}
输出:
This statement will be executed.
在上面的示例中,第一个 if语句 将会执行,因为variable1的值 null 满足 variable1 === null
的条件。由于 variable2 中存在字符串值 “Hello” ,它不等于 null ,第二个 if语句 将不会执行。