ES11中的bigint
2024-10-10 20:12:41
上一周小编因为自己的事情,没有持续更新,还望大家谅解,趁着今天醒得早,小编继续和大家学(si)习(ke)es11中的新语法。在js中,对整数类型的数据,存在着最大极限,这个极限就是
const max = 2**53 // js幂运算
console.log(max) // 9007199254740992
同样,为了计算的准确性,js也定义了最大安全整数,这个整数是
console.log(Number.MAX_SAFE_INTEGER) // 9007199254740991
当我们的项目需要的数字很大的时候,会出现这样的乌龙事件
const max = 2**53 // js幂运算
console.log(max === max+1) // true
const num = 9007199254740993
console.log(num) // 9007199254740992
为了解决这样的问题,es11中提出了一个新的基本类型,bigint。在使用的时候,可以有两种方法。
一、直接添加字母n,就像这样
const num = 9007199254740993n
console.log(num) // 9007199254740993n
console.log(typeof num) // bigint
虽然是一种新的数据类型,但是有些“规矩”还是要遵守,比如
console.log(1n==1) // true 只要值相等,返回true
console.log(1n===1) // false 必须值和类型都相等,才返回false
二、小编理解的类似构造函数,就像这样
const num = BigInt(9007199254740993n)
console.log(num) // 9007199254740993n
同样,bigint类型也可以进行我们认知内的运算,就像这样
const num1 = BigInt(9007199254740993n)
const num2 = BigInt(9007199254740993n)
console.log(num1+num2) // 18014398509481986n
数据范围是扩大了,但是每次数字后面跟个n,看着总感觉怪怪的,为了达到视觉上的美感,我们可以将bigint转为字符串数据类型,就像这样
const num = BigInt(18014398509481986n)
console.log(num.toString()) // 18014398509481986
同样,我们需要转换成bigint的时候,通过BigInt再转换一次就可以了
const str = '18014398509481986'
console.log(BigInt(str)) // 18014398509481986n
大家还可以扫描二维码,关注我的微信公众号,蜗牛全栈
最新文章
- poj 3468 成段增减
- 自动封装Servlet HttpServletRequest请求成为一个POJO对象
- JavaScript中Eval()函数的使用
- 判断相同区间(lazy) 多校8 HDU 5828 Rikka with Sequence
- iOS 之NSJSONReadingOptions说明【转】
- SVN服务器搭建(1)
- linux下安装TensorFlow(centos)
- 如何去掉修改Joomla、joomlart及其模版版权、标志、图标的方法
- sql server中的varchar和Nvarchar有什么区别?
- 初学node遇到的问题(慢慢补充)
- Linux学习笔记:使用prompt关闭ftp中mget和mput的确认提醒
- secure CRT常用的查看服务器日志命令
- pragma comment的使用 pragma预处理指令详解
- LINUX网络之ifconfig命令与ping
- Node初识笔记 1第一周
- SettingsEclipse
- 20135313_exp4
- Linux 入门记录:二十、Linux 包管理工具 YUM
- Azure:Manage anonymous read access to containers and blobs
- css3之transition、transform、animation比较