/**
 * Checks if 'value' is a number.
 * Note: NaN is considered a number.
 * @param {*} value The value to check.
 * @return {Boolean} Returns true if 'value' is a number, else false.
 */
function isNumber(value) {
    'use strict';

    return value != null && // NOTE: Using non strict equality to check against null and undefined.
        Object.prototype.toString.call(value) === '[object Number]' &&
        typeof value === 'number' ||
        false;
}

/**
 * Checks if 'value' is a number.
 * Note: NaN is considered a number.
 * @param   {*}       value The value to check.
 * @returns {Boolean} Returns true if 'value' is a number, else false.
 */
function isNumber(value) {
    'use strict';

    return value &&
        Object.prototype.toString.call(value) === '[object Number]' &&
        typeof value === 'number' ||
        false;
}

--- 
+++ 
@@ -1,13 +1,13 @@
 /**
  * Checks if 'value' is a number.
  * Note: NaN is considered a number.
- * @param   {*}       value The value to check.
- * @returns {Boolean} Returns true if 'value' is a number, else false.
+ * @param {*} value The value to check.
+ * @return {Boolean} Returns true if 'value' is a number, else false.
  */
 function isNumber(value) {
     'use strict';
 
-    return value &&
+    return value != null && // NOTE: Using non strict equality to check against null and undefined.
         Object.prototype.toString.call(value) === '[object Number]' &&
         typeof value === 'number' ||
         false;
Fix to return true for NaN
