mirror of
https://github.com/whoisclebs/lodash.git
synced 2026-02-12 03:47:50 +00:00
documentation for Underscore 0.4.7, with isDate, isNaN, and isNull
This commit is contained in:
53
index.html
53
index.html
@@ -81,7 +81,7 @@
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Underscore provides 50-odd functions that support both the usual
|
Underscore provides 60-odd functions that support both the usual
|
||||||
functional suspects: <b>map</b>, <b>select</b>, <b>invoke</b> —
|
functional suspects: <b>map</b>, <b>select</b>, <b>invoke</b> —
|
||||||
as well as more specialized helpers: function binding, javascript
|
as well as more specialized helpers: function binding, javascript
|
||||||
templating, deep equality testing, and so on. It delegates to built-in
|
templating, deep equality testing, and so on. It delegates to built-in
|
||||||
@@ -111,11 +111,11 @@
|
|||||||
<p>
|
<p>
|
||||||
<table>
|
<table>
|
||||||
<tr>
|
<tr>
|
||||||
<td><a href="underscore.js">Development Version (0.4.6)</a></td>
|
<td><a href="underscore.js">Development Version (0.4.7)</a></td>
|
||||||
<td><i>20kb, Uncompressed with Comments</i></td>
|
<td><i>20kb, Uncompressed with Comments</i></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><a href="underscore-min.js">Production Version (0.4.6)</a></td>
|
<td><a href="underscore-min.js">Production Version (0.4.7)</a></td>
|
||||||
<td><i>2kb, Packed and Gzipped</i></td>
|
<td><i>2kb, Packed and Gzipped</i></td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
@@ -207,7 +207,9 @@ _(lyrics).chain()
|
|||||||
<a href="#extend">extend</a>, <a href="#clone">clone</a>,
|
<a href="#extend">extend</a>, <a href="#clone">clone</a>,
|
||||||
<a href="#isEqual">isEqual</a>, <a href="#isEmpty">isEmpty</a>, <a href="#isElement">isElement</a>,
|
<a href="#isEqual">isEqual</a>, <a href="#isEmpty">isEmpty</a>, <a href="#isElement">isElement</a>,
|
||||||
<a href="#isArray">isArray</a>, <a href="#isFunction">isFunction</a>, <a href="#isString">isString</a>,
|
<a href="#isArray">isArray</a>, <a href="#isFunction">isFunction</a>, <a href="#isString">isString</a>,
|
||||||
<a href="#isNumber">isNumber</a>, <a href="#isUndefined">isUndefined</a>
|
<a href="#isNumber">isNumber</a>, <a href="#isDate">isDate</a>
|
||||||
|
<a href="#isNaN">isNaN</a>, <a href="#isNull">isNull</a>,
|
||||||
|
<a href="#isUndefined">isUndefined</a>
|
||||||
</span>
|
</span>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
@@ -828,6 +830,44 @@ _.isFunction("moe");
|
|||||||
<pre>
|
<pre>
|
||||||
_.isNumber(8.4 * 5);
|
_.isNumber(8.4 * 5);
|
||||||
=> true
|
=> true
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
<p id="isDate">
|
||||||
|
<b class="header">isDate</b><code>_.isDate(object)</code>
|
||||||
|
<br />
|
||||||
|
Returns <i>true</i> if <b>object</b> is a Date.
|
||||||
|
</p>
|
||||||
|
<pre>
|
||||||
|
_.isDate(new Date());
|
||||||
|
=> true
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
<p id="isNaN">
|
||||||
|
<b class="header">isNaN</b><code>_.isNaN(object)</code>
|
||||||
|
<br />
|
||||||
|
Returns <i>true</i> if <b>object</b> is <i>NaN</i>.<br /> Note: this is not
|
||||||
|
the same as the native <b>isNaN</b> function, which will also return
|
||||||
|
true if the variable is <i>undefined</i>.
|
||||||
|
</p>
|
||||||
|
<pre>
|
||||||
|
_.isNaN(NaN);
|
||||||
|
=> true
|
||||||
|
isNaN(undefined);
|
||||||
|
=> true
|
||||||
|
_.isNaN(undefined);
|
||||||
|
=> false
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
<p id="isNull">
|
||||||
|
<b class="header">isNull</b><code>_.isNull(object)</code>
|
||||||
|
<br />
|
||||||
|
Returns <i>true</i> if the value of <b>object</b> is <i>null</i>.
|
||||||
|
</p>
|
||||||
|
<pre>
|
||||||
|
_.isNull(null);
|
||||||
|
=> true
|
||||||
|
_.isNull(undefined);
|
||||||
|
=> false
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
<p id="isUndefined">
|
<p id="isUndefined">
|
||||||
@@ -956,6 +996,11 @@ _([1, 2, 3]).value();
|
|||||||
|
|
||||||
<h2>Change Log</h2>
|
<h2>Change Log</h2>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<b class="header">0.4.7</b><br />
|
||||||
|
|
||||||
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
<b class="header">0.4.6</b><br />
|
<b class="header">0.4.6</b><br />
|
||||||
Added the <tt>range</tt> function, a port of the
|
Added the <tt>range</tt> function, a port of the
|
||||||
|
|||||||
@@ -36,6 +36,7 @@ $(document).ready(function() {
|
|||||||
ok(_(moe).isEqual(clone), 'OO-style deep equality works');
|
ok(_(moe).isEqual(clone), 'OO-style deep equality works');
|
||||||
ok(!_.isEqual(5, NaN), '5 is not equal to NaN');
|
ok(!_.isEqual(5, NaN), '5 is not equal to NaN');
|
||||||
ok(_.isEqual(NaN, NaN), 'NaN is equal to NaN');
|
ok(_.isEqual(NaN, NaN), 'NaN is equal to NaN');
|
||||||
|
ok(_.isEqual(new Date(100), new Date(100)), 'identical dates are equal');
|
||||||
});
|
});
|
||||||
|
|
||||||
test("objects: isEmpty", function() {
|
test("objects: isEmpty", function() {
|
||||||
@@ -75,6 +76,25 @@ $(document).ready(function() {
|
|||||||
ok(_.isFunction(_.isFunction), 'but functions are');
|
ok(_.isFunction(_.isFunction), 'but functions are');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test("objects: isDate", function() {
|
||||||
|
ok(!_.isDate(100), 'numbers are not dates');
|
||||||
|
ok(!_.isDate({}), 'objects are not dates');
|
||||||
|
ok(_.isDate(new Date()), 'but dates are');
|
||||||
|
});
|
||||||
|
|
||||||
|
test("objects: isNaN", function() {
|
||||||
|
ok(!_.isNaN(undefined), 'undefined is not NaN');
|
||||||
|
ok(!_.isNaN(null), 'null is not NaN');
|
||||||
|
ok(!_.isNaN(0), '0 is not NaN');
|
||||||
|
ok(_.isNaN(NaN), 'but NaN is');
|
||||||
|
});
|
||||||
|
|
||||||
|
test("objects: isNull", function() {
|
||||||
|
ok(!_.isNull(undefined), 'undefined is not null');
|
||||||
|
ok(!_.isNull(NaN), 'NaN is not null');
|
||||||
|
ok(_.isNull(null), 'but null is');
|
||||||
|
});
|
||||||
|
|
||||||
test("objects: isUndefined", function() {
|
test("objects: isUndefined", function() {
|
||||||
ok(!_.isUndefined(1), 'numbers are defined');
|
ok(!_.isUndefined(1), 'numbers are defined');
|
||||||
ok(!_.isUndefined(null), 'null is defined');
|
ok(!_.isUndefined(null), 'null is defined');
|
||||||
|
|||||||
@@ -34,8 +34,8 @@ $(document).ready(function() {
|
|||||||
var expected = ["all", "any", "bind", "bindAll", "breakLoop", "clone", "compact",
|
var expected = ["all", "any", "bind", "bindAll", "breakLoop", "clone", "compact",
|
||||||
"compose","defer", "delay", "detect", "each", "every", "extend", "filter", "first",
|
"compose","defer", "delay", "detect", "each", "every", "extend", "filter", "first",
|
||||||
"flatten", "foldl", "foldr", "forEach", "functions", "head", "identity", "include",
|
"flatten", "foldl", "foldr", "forEach", "functions", "head", "identity", "include",
|
||||||
"indexOf", "inject", "intersect", "invoke", "isArray", "isElement", "isEmpty", "isEqual",
|
"indexOf", "inject", "intersect", "invoke", "isArray", "isDate", "isElement", "isEmpty", "isEqual",
|
||||||
"isFunction", "isNumber", "isString", "isUndefined", "keys", "last", "lastIndexOf", "map", "max",
|
"isFunction", "isNaN", "isNull", "isNumber", "isString", "isUndefined", "keys", "last", "lastIndexOf", "map", "max",
|
||||||
"methods", "min", "pluck", "range", "reduce", "reduceRight", "reject", "rest", "select",
|
"methods", "min", "pluck", "range", "reduce", "reduceRight", "reject", "rest", "select",
|
||||||
"size", "some", "sortBy", "sortedIndex", "tail", "template", "toArray", "uniq",
|
"size", "some", "sortBy", "sortedIndex", "tail", "template", "toArray", "uniq",
|
||||||
"uniqueId", "values", "without", "wrap", "zip"];
|
"uniqueId", "values", "without", "wrap", "zip"];
|
||||||
|
|||||||
@@ -34,7 +34,7 @@
|
|||||||
var oproto = Object.prototype;
|
var oproto = Object.prototype;
|
||||||
|
|
||||||
// Current version.
|
// Current version.
|
||||||
_.VERSION = '0.4.6';
|
_.VERSION = '0.4.7';
|
||||||
|
|
||||||
/*------------------------ Collection Functions: ---------------------------*/
|
/*------------------------ Collection Functions: ---------------------------*/
|
||||||
|
|
||||||
@@ -426,11 +426,11 @@
|
|||||||
// Basic equality test (watch out for coercions).
|
// Basic equality test (watch out for coercions).
|
||||||
if (a == b) return true;
|
if (a == b) return true;
|
||||||
// Check dates' integer values.
|
// Check dates' integer values.
|
||||||
if (a instanceof Date && b instanceof Date) return a.getTime() === b.getTime();
|
if (_.isDate(a) && _.isDate(b)) return a.getTime() === b.getTime();
|
||||||
// One of them implements an isEqual()?
|
// One of them implements an isEqual()?
|
||||||
if (a.isEqual) return a.isEqual(b);
|
if (a.isEqual) return a.isEqual(b);
|
||||||
// Both are NaN?
|
// Both are NaN?
|
||||||
if (_.isNumber(a) && _.isNumber(b) && isNaN(a) && isNaN(b)) return true;
|
if (_.isNaN(a) && _.isNaN(b)) return true;
|
||||||
// If a is not an object by this point, we can't handle it.
|
// If a is not an object by this point, we can't handle it.
|
||||||
if (atype !== 'object') return false;
|
if (atype !== 'object') return false;
|
||||||
// Check for different array lengths before comparing contents.
|
// Check for different array lengths before comparing contents.
|
||||||
@@ -474,6 +474,22 @@
|
|||||||
return oproto.toString.call(obj) == '[object Number]';
|
return oproto.toString.call(obj) == '[object Number]';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// Is a given value a Date?
|
||||||
|
_.isDate = function(obj) {
|
||||||
|
return oproto.toString.call(obj) == '[object Date]';
|
||||||
|
};
|
||||||
|
|
||||||
|
// Is the given value NaN -- this one is interesting. NaN != NaN, and
|
||||||
|
// isNaN(undefined) == true, so we make sure it's a number first.
|
||||||
|
_.isNaN = function(obj) {
|
||||||
|
return _.isNumber(obj) && isNaN(obj);
|
||||||
|
};
|
||||||
|
|
||||||
|
// Is a given value equal to null?
|
||||||
|
_.isNull = function(obj) {
|
||||||
|
return obj === null;
|
||||||
|
};
|
||||||
|
|
||||||
// Is a given variable undefined?
|
// Is a given variable undefined?
|
||||||
_.isUndefined = function(obj) {
|
_.isUndefined = function(obj) {
|
||||||
return typeof obj == 'undefined';
|
return typeof obj == 'undefined';
|
||||||
|
|||||||
Reference in New Issue
Block a user