上一周小编因为自己的事情,没有持续更新,还望大家谅解,趁着今天醒得早,小编继续和大家学(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

大家还可以扫描二维码,关注我的微信公众号,蜗牛全栈

最新文章

  1. poj 3468 成段增减
  2. 自动封装Servlet HttpServletRequest请求成为一个POJO对象
  3. JavaScript中Eval()函数的使用
  4. 判断相同区间(lazy) 多校8 HDU 5828 Rikka with Sequence
  5. iOS 之NSJSONReadingOptions说明【转】
  6. SVN服务器搭建(1)
  7. linux下安装TensorFlow(centos)
  8. 如何去掉修改Joomla、joomlart及其模版版权、标志、图标的方法
  9. sql server中的varchar和Nvarchar有什么区别?
  10. 初学node遇到的问题(慢慢补充)
  11. Linux学习笔记:使用prompt关闭ftp中mget和mput的确认提醒
  12. secure CRT常用的查看服务器日志命令
  13. pragma comment的使用 pragma预处理指令详解
  14. LINUX网络之ifconfig命令与ping
  15. Node初识笔记 1第一周
  16. SettingsEclipse
  17. 20135313_exp4
  18. Linux 入门记录:二十、Linux 包管理工具 YUM
  19. Azure:Manage anonymous read access to containers and blobs
  20. css3之transition、transform、animation比较

热门文章

  1. RobotFramework + Python 自动化入门 二 (关键字)
  2. Etcd中linearizable read实现
  3. (1)Canal入门
  4. PyCharm 2020.1 激活教程
  5. windows下Docker Desktop安装管理
  6. 9、zabbix监控
  7. hugegraph 源码解读 —— 索引与查询优化分析
  8. php+swoole多线程的操作
  9. python使用笔记24--面向对象编程2
  10. webdriver xpath