es.shim/src/lib/number.js

42 lines
952 B
JavaScript

/**
* @author yutent<yutent.io@gmail.com>
* @date 2020/09/16 11:58:40
*/
// 简单的数字处理
// 将安全范围内的数字字符串转为数字类型
// 否则转为字符串类型
if (!Number.parse) {
Object.defineProperty(Number, 'parse', {
value: function(val) {
if (typeof val === 'number' || typeof val === 'string') {
val += ''
if (val.startsWith('0') && !val.startsWith('0.')) {
if (val === '0') {
return 0
} else {
return val
}
} else {
if (isFinite(val)) {
if (val >= Number.MIN_SAFE_INTEGER && val <= Number.MAX_SAFE_INTEGER) {
val = +val
}
}
return val
}
}
return val
}
})
}
// 将字符串转为数字类型
if (!Number.fromString) {
Object.defineProperty(Number, 'fromString', {
value: function(val) {
return +val || 0
}
})
}
实现部分新API, 以及一些常用的扩展方法。 nodejs和浏览器通用,
JavaScript 100%