来自下划线:
_.isNull = function(obj) {
return obj === null;
};
为什么要使用此方法而不是仅使用
obj === null
答案 0 :(得分:3)
因为_.isNull
可以作为函数参数传递,而obj === null
必须包含在函数中才能这样做,这意味着使用_.isNull
可以节省你必须包装的时间自己在函数中声明。
答案 1 :(得分:2)
语法糖,标准化以及意外键入==
的可能性要小得多,因此编码错误的次数要少得多。
答案 2 :(得分:2)
根据更改日志,它是“完整性”。
0.4.7
添加了
isDate
,isNaN
和isNull
,以确保完整性。在检查数组或日期之间的相等性时isEqual
的优化。_.keys
现在快25%-2倍(取决于您的浏览器),这会加快依赖它的功能,例如_.each
。
答案 3 :(得分:1)
可能用于迭代器方法,如.some()
。
var has_null = collection.some(_.isNull);
为了一些常见的目的,拥有可重复使用的功能是件好事。
答案 4 :(得分:1)
除了回调之外,_.isNull
函数似乎没什么用处,所以它可能只是为了完整性。当你查看Underscore.JS source code时,你可以看到其他类似的功能并不是那么简单:
// Is a given object a finite number?
_.isFinite = function(obj) {
return isFinite(obj) && !isNaN(parseFloat(obj));
};
// Is the given value `NaN`? (NaN is the only number which does not equal itself).
_.isNaN = function(obj) {
return _.isNumber(obj) && obj != +obj;
};
// Is a given value a boolean?
_.isBoolean = function(obj) {
return obj === true || obj === false || toString.call(obj) == '[object Boolean]';
};
// Is a given value equal to null?
_.isNull = function(obj) {
return obj === null;
};
// Is a given variable undefined?
_.isUndefined = function(obj) {
return obj === void 0;
};