Files
asciidisco.com/build/node_modules/is-finite-x/index.js
2023-08-01 13:49:46 +02:00

38 lines
1.2 KiB
JavaScript

/**
* @file ES6-compliant shim for Number.isFinite.
* @see {@link http://www.ecma-international.org/ecma-262/6.0/#sec-number.isfinite|20.1.2.2 Number.isFinite ( number )}
* @version 3.0.2
* @author Xotic750 <Xotic750@gmail.com>
* @copyright Xotic750
* @license {@link <https://opensource.org/licenses/MIT> MIT}
* @module is-finite-x
*/
'use strict';
var numberIsNaN = require('is-nan-x');
var INFINITY = require('infinity-x');
/**
* This method determines whether the passed value is a finite number.
*
* @param {*} number - The value to be tested for finiteness.
* @returns {boolean} A Boolean indicating whether or not the given value is a finite number.
* @example
* var numIsFinite = require('is-finite-x');
*
* numIsFinite(Infinity); // false
* numIsFinite(NaN); // false
* numIsFinite(-Infinity); // false
*
* numIsFinite(0); // true
* numIsFinite(2e64); // true
*
* numIsFinite('0'); // false, would've been true with
* // global isFinite('0')
* numIsFinite(null); // false, would've been true with
*/
module.exports = function isFinite(number) {
return typeof number === 'number' && numberIsNaN(number) === false && number !== INFINITY && number !== -INFINITY;
};