【发布时间】:2021-05-21 00:09:03
【问题描述】:
简要介绍一下,我是一个学习 JS 的菜鸟,感觉进展顺利,但是我现在正在做一个简单的练习,但我对某件事感到很困惑。
我了解到: 假值是在布尔上下文中遇到时被认为是假的值 例如:false、0、-0、0n、""、null、未定义、NaN(不是数字) truthy 是除 falsey 之外的所有内容(例如字符串、布尔值 true、非 0 的任何数字等)
所以在下面的示例中,如果有人可以帮助我理解为什么 value => value == true,那么当我的数组中有一个字符串值(“Angela”)时,会打印出 false(就像这种情况一样)。谢谢!
let values = [11, NaN, [], "Angela"]
function checkForFalsey() {
if (values.some(value => value == true)) {
console.log("At least one item is falsey")
}
}
checkForFalsey()
【问题讨论】:
-
some将在条件为真时立即返回。它不会达到Angela。 developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/… -
另请注意,即使使用草率相等 (
==/!=),并非所有虚假值都被视为等于false。 -
您问“在下面的示例中,如果有人可以帮助我理解为什么 value => value == true 会打印出 false”,但您的示例显示
value => value == false。那么......你的问题是什么? -
很有趣,但是既然我在数组中的第一个值是一个整数,为什么我仍然会得到一个假值?
-
您的代码中没有任何内容“打印出错误”。请提供能准确重现您感到困惑的结果的代码。
标签: javascript truthy