如何检查JavaScript(ES2020)中的值是否为null或未定义

如何检查JavaScript(ES2020)中的值是否为null或未定义,javascript,typescript,ecmascript-6,Javascript,Typescript,Ecmascript 6,有没有比使用新的ES10特性(如Nullish合并)检查JavaScript中的值是否为null或未定义的更短的方法 值!==空值和值!==未定义 还有其他问题,比如 但它们都使用松散相等==、使用jQuery或返回false,即使值为、[]或0。如果启用了智能选项,eslint不会为值==null抛出错误 对于在eslint配置中没有智能EQEQ规则的项目 使用Nullish合并有一种较短的方法 价值空!==无效的 让值 //未定义 console.logvalue??空!==无效的 //空

有没有比使用新的ES10特性(如Nullish合并)检查JavaScript中的值是否为null或未定义的更短的方法

值!==空值和值!==未定义 还有其他问题,比如

但它们都使用松散相等==、使用jQuery或返回false,即使值为、[]或0。

如果启用了智能选项,eslint不会为值==null抛出错误

对于在eslint配置中没有智能EQEQ规则的项目

使用Nullish合并有一种较短的方法

价值空!==无效的 让值 //未定义 console.logvalue??空!==无效的 //空的 值=空 console.logvalue??空!==无效的 // 值= console.logvalue??空!==无效的 // 0 值=0 console.logvalue??空!==无效的 // [] 值=[]
console.logvalue??空!==nullvalue==nulls没有什么问题。它是否可以通过eslint防止这种情况?eqeq-ESLint规则有一个聪明的选项,允许这种类型的使用:还有一个值??空!==我猜是空的?@jcalz值??空!==空值可能会工作,但完全是奇怪的。我不建议编写这样的代码,这只是一个混乱的根源。value==null是一种简短、精确、众所周知且惯用的语言。“ES2020并没有改变这一点。”Bergi同意!我不打算推荐它。不,价值??错!==值===false时false失败。如果问题是,我们可以检查值是否为null、未定义或false吗?那当然。是的,false不应该包括在内。谢谢