gpt4 book ai didi

javascript - '! !' versus just checking for "truthy"或 "falsy"存在

转载 作者:行者123 更新时间:2023-11-29 17:50:17 25 4
gpt4 key购买 nike

回复:JavaScript 中的 !!,根据我的理解,这会将对象转换为 boolean 值。根据另一个 SO 线程中的回答,它“将 oObject 强制转换为 boolean 值。如果它是假的(例如 0、null、未定义等),它将是假的,否则为真。”

因此,我的问题是,这个 !! 是否比简单地检查虚假或真实存在更可靠?例如,我可以这样做:

return !!(this.services[0] && this.services[0].service);

或者我可以这样做:

if (this.services[0] && this.services[0].service) {
return true;
} else {
return false;
}

这些功能是否等同?

最佳答案

&& 返回第一个假值,因此如果您确实需要 boolean 值的一致性,!!(val1 && val2) 可能会更好。

例如,如果您正在监视表达式的更改(如在 AngularJS 中):

$scope.$watch(() => val1 && val2, (newVal, oldVal) => { 
//...
});

如果 val1undefined 开头,则 val1 && val2 将评估为 undefined。如果 val1 后来变为 false,则 val1 && val2 的计算结果将为 false。所以你的观察者会在你不想要的时候再次执行!所以最好看 !!(val1 && val2)

关于javascript - '! !' versus just checking for "truthy"或 "falsy"存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44550591/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com