Javascript只检查空值的最佳实践
我想检查JavaScript中的空值 例如,test()是可以返回null的函数。因此,如果我想有效地测试空检查,我的方法应该是什么Javascript只检查空值的最佳实践,javascript,null,Javascript,Null,我想检查JavaScript中的空值 例如,test()是可以返回null的函数。因此,如果我想有效地测试空检查,我的方法应该是什么 var a = test(); 接 if (a) {} 或 ?? 因为如果(a)将检查null、undefined、false、0、NaN,当我们知道只能得到null值时,这可能不是最好的方法。只检查null if (value !== null) { } 如果您想检查“未定义” if (typeof value !== 'undefined' &&
var a = test();
接
if (a) {}
或
??
因为如果(a)将检查null、undefined、false、0、NaN,当我们知道只能得到null值时,这可能不是最好的方法。只检查null
if (value !== null) {
}
如果您想检查“未定义”
if (typeof value !== 'undefined' && value !== null)
我建议您同时检查undefined
和null
值
function test() {
var a;
return a; // returns undefined
}
function test() {
var a = null;
return a; // returns null
}
因此,值可能是
未定义的
或空的
。所以最好同时检查两者。正如您所指出的,不同的方法检查不同的东西,您需要根据需要选择最合适的方法。它们之间的性能差异很小,当然不值得进行微优化
如果(a)
确保真实的价值。如果返回值0
或'
实际有效,则这可能不是您想要的
如果(a!==null)
确保筛选空返回值
如果(a!==null&&a!==未定义)
确保筛选空值或未定义的值
如果(a!=null)
与前一个相同,过滤掉空值和未定义的值。它较短,但某些编码样式强制执行严格的相等性检查,粗心的维护人员可能会无意中通过“修复”它来更改逻辑
var a=test()|默认值代码>
不完全是一个检查,但非常有用,因为它不会分支您的逻辑。如果test()调用的结果为falsy,则可以应用某个默认值时,您可能希望使用该值来避免if all,并具有清晰的代码路径。
如果我想有效地测试空值检查,这是应用程序中的瓶颈吗?我想检查空值。
。因此,检查空值:如果(a!==null){}
?如果不检查与空值是否严格相等,则将检查所有false-y值。因此必须使用'if(a==null){…}'。仅供参考,null与未定义(或0,或false,或“”)不同。是的,我的问题基本上是关于效率,是否使用!==空,更好的方法?或者根本没关系。
function test() {
var a;
return a; // returns undefined
}
function test() {
var a = null;
return a; // returns null
}