我想检查 JavaScript 中的空值。
例如, test() 是可以返回 null 的函数。所以如果我想有效地测试空检查,我的方法应该是什么。
var a = test();
Run Code Online (Sandbox Code Playgroud)
其次是
if (a) {}
Run Code Online (Sandbox Code Playgroud)
或者
if (a !== null) {}
Run Code Online (Sandbox Code Playgroud)
? 因为if (a)将检查 null、undefined、false、0、NaN,当我们知道我们只能得到 null 值时,这可能不是最好的方法。
仅检查 null
if (value !== null) {
}
Run Code Online (Sandbox Code Playgroud)
如果您甚至想检查“未定义”
if (typeof value !== 'undefined' && value !== null)
Run Code Online (Sandbox Code Playgroud)
我建议您检查undefined和null价值。
function test() {
var a;
return a; // returns undefined
}
function test() {
var a = null;
return a; // returns null
}
Run Code Online (Sandbox Code Playgroud)
所以有可能 value 可以undefinedor null。所以最好两者都检查一下。
正如您所指出的,不同的方法检查不同的东西,您需要根据自己的需要选择最合适的方法。它们之间的性能差异很小,当然不值得进行微观优化。
if (a)
确保真实值。如果返回值0或''实际上有效,这可能不是您想要的。
if (a !== null)
确保过滤空返回值。
if (a !== null && a !== undefined)
确保过滤空值或未定义的值。
if (a != null)
与上一个相同,过滤掉空值和未定义值。它更短,但某些编码风格强制执行严格的相等性检查,粗心的维护者可能会通过“修复”它无意中改变逻辑。
var a = test() || default;
不完全是检查,但非常有用,因为它不会分支您的逻辑。如果 test() 调用的结果为假,则可以应用某个默认值时,您可能希望使用它来避免 if alltogether 并拥有清晰的代码路径。
| 归档时间: |
|
| 查看次数: |
5832 次 |
| 最近记录: |