ES6学习(数值扩展)

一、Number内置对象上添加和修改方法

1、将parseInt(), parseFloat() §移植到Number上,原理一样;
//减少全局性方法
// ES5的写法
console.log(parseInt('2.34') ) // 2
// ES6的写法
console.log(Number.parseInt('2.34') )// 2
console.log(Number.parseInt === parseInt )   //true
console.log(Number.parseFloat === parseFloat )   //true
2、在Number对象上新增方法isFinite()和isNaN()

与传统的全局方法isFinite()和isNaN()的区别在于,传统方法先调用Number()将非数值的值转为数值,再进行判断,而这两个新方法只对数值有效
(1)Number.isFinite()用来检查一个数值是否为有限的,有限则为true,否则为false。如果传入的参数,类型不是数值,那么都返回false。

console.log(isFinite('6')); // true

console.log(Number.isFinite('6')); // false
console.log(Number.isFinite(6)); // true
console.log(Number.isFinite(16.6)); // true
console.log(Number.isFinite(NaN)); // false
console.log(Number.isFinite(null)); // false
console.log(Number.isFinite({)); // false
console.log(Number.isFinite('ceshi')); // false
console.log(Number.isFinite(false)); // false

(2)Number.isNaN()用来检查一个值是否为NaN。如果参数类型不是NaN,则都返回false。

console.log(isNaN('NaN')) // true

console.log(Number.isNaN(NaN)) // true
console.log(Number.isNaN('NaN')) // false
console.log(Number.isNaN(6)) // false
console.log(Number.isNaN('16')) // false
console.log(Number.isNaN(true)) // false
console.log(Number.isNaN(null)) // false
console.log(Number.isNaN({})) // false
3、在Number对象上新增方法isInteger()

用来判断一个数值是否为整数。如果小数点后为0或超过小数点精度都会返回true,因此对数据精度的要求较高的,不建议使用此方法。

console.log(Number.isInteger(10)) // true
console.log(Number.isInteger(10.1)) // false
console.log(Number.isInteger(10.0)) // false
console.log(Number.isInteger(null)) // false
console.log(Number.isInteger({})) // false
console.log(Number.isInteger('ceshi')) // false
console.log(Number.isInteger(true)) // false
console.log(Number.isInteger(10.0000000000000000000000000007)) // true

二、Math内置对象上添加方法

(1)trunc()方法:去除一个数的小数部分,返回整数部分。对于不是数值的参数,其内部会使用Number方法将其先转为数值。如果转化不行则返回NaN。

console.log(Math.trunc(6.6)) // 6
console.log(Math.trunc(6.2)) // 6
console.log(Math.trunc(-6.2)) // -6
console.log(Math.trunc(-6.6)) // -6
console.log(Math.trunc("-6.6")) // -6
console.log(Math.trunc(true)) // 1
console.log(Math.trunc(false)) // 0
console.log(Math.trunc(null)) // 0
console.log(Math.trunc()) // NaN
console.log(Math.trunc("ceshi")) // NaN
console.log(Math.trunc(NaN)) // NaN

(2)sign()方法:判断一个数到底是正数、负数、还是零。对于不是数值的参数,其内部会使用Number方法将其先转为数值。正数为+1,负数为-1,零也会分±0,其他的都会返回NaN。

console.log(Math.sign(-6)) // -1
console.log(Math.sign(6)) // +1
console.log(Math.sign('6')) // +1
console.log(Math.sign(0)) // 0
console.log(Math.sign(-0)) // -0
console.log(Math.sign('')) // 0
console.log(Math.sign(true)) // +1
console.log(Math.sign(false)) // 0
console.log(Math.sign(null)) // 0
console.log(Math.sign('ceshi')) // NaN
console.log(Math.sign({})) // NaN
console.log(Math.sign()) // NaN
console.log(Math.sign(NaN)) // NaN
console.log(Math.sign(undefined)) // NaN

(3)cbrt()方法:计算一个数的立方根。对于不是数值的参数,其内部会使用Number方法将其先转为数值。如果转化不行则返回NaN。

console.log(Math.cbrt(-8)) // -2
console.log(Math.cbrt('-8')) // -2
console.log(Math.cbrt({})) // NaN
console.log(Math.cbrt(null)) // 0
console.log(Math.cbrt('')) // 0
console.log(Math.cbrt('ceshi')) // NaN
console.log(Math.cbrt(true)) // 1
console.log(Math.cbrt(false)) // 0
console.log(Math.cbrt(NaN)) // NaN
console.log(Math.cbrt(undefined)) // NaN

三、BigInt 数据类型(ES2020引入)

转换规则基本与Number()一致,将其他类型的值转为 BigInt。
必须有参数,而且参数必须可以正常转为整数值。如果是小数或其他都报错。

console.log(typeof 453n) // bigint
console.log(typeof 453n) // bigint
console.log(BigInt(453)) // 453n
console.log(BigInt("453")) // 453n
console.log(BigInt('')) // 0n
console.log(BigInt(true)) // 1n
console.log(BigInt(false)) // 0n
console.log(BigInt(null)) // SyntaxError
console.log(BigInt("453.5")) // SyntaxError
console.log(BigInt(453.5)) // SyntaxError
console.log(BigInt(NaN)) // SyntaxError

欢迎关注公众号(web学习吧),一起学习进步:
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq_34231078

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值