Javascript最佳实践只检查空值

时间:2014-04-16 06:14:30

标签: javascript null

我想检查JavaScript中的空值。

例如,test()是可以返回null的函数。所以如果我想有效地测试空检查应该是我的方法。

var a = test();

接着是

if (a) {}

OR

if (a !== null) {}

? 因为 if(a)将检查null,undefined,false,0,NaN,当我们知道我们只能获得空值时,这可能不是最好的方法。

2 个答案:

答案 0 :(得分:4)

正如您所指出的,不同的方法会检查不同的东西,您需要根据需要选择最合适的方法。它们之间的性能差异微不足道,当然不值得微观优化。


<强> if (a)

确保真正的价值。如果0''的返回值实际有效,则可能不是您想要的。


<强> if (a !=== null)

确保过滤返回的null值。


<强> if (a !== null && a !== undefined)

确保过滤掉null或未定义的值。


<强> if (a != null)

与前一个相同,过滤掉null和undefined值。它更短,但某些编码风格强制执行严格的等式检查,粗心的维护者可以通过修复&#34;无意中改变逻辑。它


<强> var a = test() || default;

不完全是一个检查,但非常有用,因为它没有分支你的逻辑。如果test()调用的结果是假的,可以应用某个默认值,您可能希望使用它来避免if alltogether并且具有清晰的代码路径。

答案 1 :(得分:3)

仅检查空值

if (value !== null) {
}

如果你想检查'undefined'

if (typeof value !== 'undefined' && value !== null)

我建议您检查undefinednull值。

function test() {
  var a;
  return a;  // returns undefined
}

function test() {
  var a = null;
  return a;  // returns null   
}

因此有可能值undefinednull。所以最好检查两者。