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 稍微快一些,因为它不必调用函数,但它是不易察觉的,几乎不应该考虑。
就可读性而言,我对这两种方式都没有强烈的偏好,但调用库函数进行如此简单的检查似乎有点过分和冗长。
在 underscore.js 中,您必须编写此代码才能实现该功能。
var name = "someName";
if(!(_.isNull(name ))) {
// do something
}
在 underscore.js 中函数isNull
是这样写的
_.isNull = function(obj) {
return obj === null;
};
所以区别在于==
您的代码和===
underscore.js 中使用。有关该区别的更多详细信息,您可以查看此问题。
在 JavaScript 比较中应该使用哪个等号运算符(== vs ===)?
PS我会建议写你自己的条件,而不是在这么简单的地方使用任何库。
var name = "someName";
if(name !== null)) {
// do something
}
好吧,您的原始代码有缺陷,因为如果name
是空字符串,false
数字或任何其他虚假值,那么就您的测试而言0
,它将被考虑。null
作为一般规则,调用 ANY 函数是一种开销,应尽可能避免。在这种情况下,调用一个函数只是为了测试一个值是否为空,而你可以很容易地编写if( name === null)
, 只是愚蠢的,IMO ...
if ((!(_.isUndefined(data)) || _.isEmpty(data))) {
//Valid Data
}else {//Not Valid}