来自下划线库:
_.isNull = function(obj) {
return obj === null;
};
为什么您要使用这种方法,而不是直接使用?
obj === null
来自下划线库:
_.isNull = function(obj) {
return obj === null;
};
为什么您要使用这种方法,而不是直接使用?
obj === null
因为_.isNull
可以作为函数参数传递,而obj === null
则需要包装在函数中,这意味着使用_.isNull
可以节省您自己包装该语句的时间。
isFalse
和isTrue
呢? - user3105359NaN
是Number
类型的值。 - user3105359isTrue
,因为它已经存在。只需将Boolean
作为一个函数使用(假设你正在测试对象的真值,而不是严格等于true
的值)。 - undefined语法糖、标准化,还有更小的意外输错==
的机会,因此编码更少出错。
可能用于迭代器方法,例如.some()
。
var has_null = collection.some(_.isNull);
拥有可重复使用的函数来实现一些常见的目的是很好的。
_.isNull
函数似乎除了用于回调之外并没有太多用处,因此它可能只是为了完整性而存在。当您查看Underscore.JS源代码时,您会发现其他类似的函数并不那么简单:
// 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;
};