var name = "someName";
if(name !=null) {
// do something
}
- 我现在使用http://underscorejs.org/#isNull ,如何将我做同样的使用
underscore.js
- 它是否给于了这样的功能性能方面的任何轻微的改善。
var name = "someName";
if(name !=null) {
// do something
}
underscore.js
在下划线,你可以使用
if(!_.isNull(name)) {}
和普通的JavaScript,你应该使用
if(name !== null) {}
你应该避免宽松不等于运算符!=
因为它没有强制类型转换和undefined != null
将返回false
。
使用普通的JavaScript速度稍快,因为它不必调用功能,但它会潜移默化,它应该几乎是一个考虑因素。
我没有强烈的偏好无论哪种方式,尽量可读性去,但似乎有点过分冗长调用库函数对于这样一个简单的检查。
嗯,你原来的代码是有缺陷的,因为如果name
为空字符串, false
,数字0
或任何其他falsy值,那么将被视为null
,只要你的测试关注。
作为一般规则,调用任何功能是应该尽可能避免的开销。 在这种情况下,调用一个函数只是为了测试,如果值为空,当你可以很容易地只写if( name === null)
,仅仅是愚蠢的,海事组织...
在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
}
if ((!(_.isUndefined(data)) || _.isEmpty(data))) {
//Valid Data
}else {//Not Valid}