var name = "someName";
if(name !=null) {
// do something
}
underscore.js
答案 0 :(得分:25)
在下划线中,您可以使用
if(!_.isNull(name)) {}
并且在普通的Javascript中,您应该使用
if(name !== null) {}
您应该避免使用松散的不等式运算符!=
,因为它会输入强制类型,undefined != null
将返回false
。
使用普通的Javascript稍微快一些,因为它不必调用函数,但它将是难以察觉的,它应该是一个考虑因素。
就可读性而言,我没有强烈的偏好,但是为了这么简单的检查调用库函数似乎有点过分和冗长。
答案 1 :(得分:1)
原始代码存在缺陷,因为如果name
为空字符串false
,数字为0
或任何其他虚假值,则会将null
视为if( name === null)
就你的考试而言。
作为一般规则,调用ANY函数是一个开销,如果可能应该避免。在这种情况下,调用一个函数来测试一个值是否为null,当你可以很容易地写{{1}}时,只是愚蠢,IMO ......
答案 2 :(得分:1)
在underscore.js中,您必须编写此代码才能实现该功能。
var name = "someName";
if(!(_.isNull(name ))) {
// do something
}
在underscore.js中,函数isNull
就是这样编写的
_.isNull = function(obj) {
return obj === null;
};
不同之处在于您的代码中使用了==
,而在underscore.js中使用了===
。有关这种差异的详细信息,您可以查看此问题。
Which equals operator (== vs ===) should be used in JavaScript comparisons?
P.S。我建议你写自己的条件,而不是在这么简单的地方使用任何库。
var name = "someName";
if(name !== null)) {
// do something
}
答案 3 :(得分:0)
if ((!(_.isUndefined(data)) || _.isEmpty(data))) {
//Valid Data
}else {//Not Valid}