📅  最后修改于: 2023-12-03 15:01:48.198000             🧑  作者: Mango
在Javascript中,除了null
,undefined
,false
,0
,NaN
,''
(空字符串)以外,其他所有值都被视为真值。这些被视为真值的值被称为“truthy”,而那些被视为假值的值被称为“falsy”。
我们可以使用Boolean()
函数来判断一个值是真值还是假值,如下所示:
console.log(Boolean('hello world')); // true
console.log(Boolean(123)); // true
console.log(Boolean({})); // true
console.log(Boolean([])); // true
console.log(Boolean(function () {})); // true
console.log(Boolean(null)); // false
console.log(Boolean(undefined)); // false
console.log(Boolean(false)); // false
console.log(Boolean(0)); // false
console.log(Boolean(NaN)); // false
console.log(Boolean('')); // false
注意到Boolean()
函数的用法与其他语言中的bool()
函数略有不同。它不仅可以判断一个值是真值还是假值,还可以将一个值显式地转换为布尔类型。
在Javascript中,我们可以使用真值和假值的特性进行一些常见的操作。例如,我们要判断一个数组是否为空,可以使用以下代码:
var arr = [];
if (arr.length) {
console.log('数组不为空');
} else {
console.log('数组为空');
}
这里的arr.length
返回的是数组的长度,如果数组不为空,则返回一个大于0的数,被视为真值;否则返回0,被视为假值。因此,可以用其作为if
语句的条件判断。
另外一个常见的操作是使用逻辑运算符的短路求值特性。例如,我们要实现一个函数,计算一个字符串中包含的数字的个数,可以使用以下代码:
function countNumbers(str) {
var count = 0;
for (var i = 0; i < str.length; i++) {
var char = str.charAt(i);
if (char >= '0' && char <= '9') {
count++;
}
}
return count;
}
console.log(countNumbers('abc123def')); // 3
console.log(countNumbers('helloworld')); // 0
注意到这里的char >= '0' && char <= '9'
被视为一个整体,它返回一个真值或假值。如果返回真值,count
数量加1;否则count
数量不变。这里的短路求值确保了只有当char
是一个数字时,count
数量才会增加。
真值和假值的概念在Javascript中非常重要,因为它们可以用来简化我们的代码并提高程序的可读性。掌握这个概念,能让我们使用更简短的代码来实现一些常见的操作。如果您还不熟悉这个概念,建议多实践一些例子,并仔细阅读相关的文档和教程。