isNull()的目的是什么?

时间:2014-01-13 18:30:49

标签: javascript underscore.js

来自下划线:

_.isNull = function(obj) {
    return obj === null;
  };

为什么要使用此方法而不是仅使用

obj === null

5 个答案:

答案 0 :(得分:3)

因为_.isNull可以作为函数参数传递,而obj === null必须包含在函数中才能这样做,这意味着使用_.isNull可以节省你必须包装的时间自己在函数中声明。

答案 1 :(得分:2)

语法糖,标准化以及意外键入==的可能性要小得多,因此编码错误的次数要少得多。

答案 2 :(得分:2)

根据更改日志,它是“完整性”。

  

0.4.7

     

添加了isDateisNaN 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;
};