📌  相关文章
📜  javascript中的真值和假值(1)

📅  最后修改于: 2023-12-03 15:01:48.198000             🧑  作者: Mango

Javascript中的真值和假值

在Javascript中,除了nullundefinedfalse0NaN''(空字符串)以外,其他所有值都被视为真值。这些被视为真值的值被称为“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中非常重要,因为它们可以用来简化我们的代码并提高程序的可读性。掌握这个概念,能让我们使用更简短的代码来实现一些常见的操作。如果您还不熟悉这个概念,建议多实践一些例子,并仔细阅读相关的文档和教程。