toFinite
依赖
import toNumber from './toNumber.js';源码
const INFINITY = 1 / 0;
const MAX_INTEGER = 1.7976931348623157e308;
/**
* 将 value 转换为一个有限数字。
*
* @since 4.12.0
* @category Lang
* @param {*} value 要转换的值。
* @returns {number} 返回转换后的数字。
*/
function toFinite(value) {
// falsey 情况下,返回 0
if (!value) {
return value === 0 ? value : 0;
}
// 转换为 Numebr 类型
value = toNumber(value);
// INFINITY、 -INFINITY情况下,转为有限值
if (value === INFINITY || value === -INFINITY) {
const sign = value < 0 ? -1 : 1;
return sign * MAX_INTEGER;
}
// 判断 value 是否为 NaN
return value === value ? value : 0;
}原理
知识点
相关链接
Last updated