使用underscore.js为空检查(Using underscore.js for null c

2019-07-29 13:24发布

var name = "someName";
if(name !=null) {
   // do something
}
  1. 我现在使用http://underscorejs.org/#isNull ,如何将我做同样的使用underscore.js
  2. 它是否给于了这样的功能性能方面的任何轻微的改善。

Answer 1:

在下划线,你可以使用

if(!_.isNull(name)) {}

和普通的JavaScript,你应该使用

if(name !== null) {}

你应该避免宽松不等于运算符!=因为它没有强制类型转换和undefined != null将返回false

使用普通的JavaScript速度稍快,因为它不必调用功能,但它会潜移默化,它应该几乎是一个考虑因素。

我没有强烈的偏好无论哪种方式,尽量可读性去,但似乎有点过分冗长调用库函数对于这样一个简单的检查。



Answer 2:

嗯,你原来的代码是有缺陷的,因为如果name为空字符串, false ,数字0或任何其他falsy值,那么将被视为null ,只要你的测试关注。

作为一般规则,调用任何功能是应该尽可能避免的开销。 在这种情况下,调用一个函数只是为了测试,如果值为空,当你可以很容易地只写if( name === null) ,仅仅是愚蠢的,海事组织...



Answer 3:

在underscore.js您必须编写此实现这一功能。

var name = "someName";
if(!(_.isNull(name ))) {
   // do something
}

在underscore.js功能isNull是这样写的

_.isNull = function(obj) {
    return obj === null;
  };

所以,不同的是用==在你的代码和===在underscore.js.For有关差别,你可以看看在这个问题的更多细节。

这等于运算符(== VS ===)应该在JavaScript中的比较中使用?

PS我会建议写的,而不是在这种简单的地方使用任何图书馆您的自身条件。

var name = "someName";
if(name !== null)) {
   // do something
}


Answer 4:

if ((!(_.isUndefined(data)) || _.isEmpty(data))) {
//Valid Data 
}else {//Not Valid}


文章来源: Using underscore.js for null checking