目录

概述

场景

定义BigInt

例子

使用BigInt时的注意点

验证例子1: n1为bigint, n2为数字, 使用Math.pow()函数来求两者的平方

验证例子2: 使用大数和number进行运算和比较

验证例子3: BigInt不能转小数

BigInt的内部转换

BigInt运算结果为小数会取整

BigInt的实例方法


概述

BigInt是javascript中的内置对象, 一般用来表示大数 (大于2^53 - 1的整数), 当遇到大数操作时应该想到BigInt, 他和number具有相似的行为, 同样可以用来加减乘除比较等等

场景

数字的最大安全值 : Number.MAX_SAFE_INTEGER 也就是 2^53 - 1

我们来看看操作数字的最大安全值会发生什么 ?

    const n1 = Number.MAX_SAFE_INTEGER * 10;console.log(Number.MAX_SAFE_INTEGER, n1);

可以看到 原本最大安全值*10的结果应该是 90071992547409910 但结果不一样, 说明number的大数的操作并不安全, 接下来看看BigInt

定义BigInt

想要定义一个大数, 你可以在数字或者字符串后加个n, 或者使用BigInt() , typeof 检测大数的类型是 bigint

例子

    const n1 = Number.MAX_SAFE_INTEGER;const n2 = 10nconst res = BigInt(n1) * BigInt(10);console.log(n1, res)console.log(typeof n2, typeof res);

可以看到使用bigint来进行计算结果就是正确的

使用BigInt时的注意点

使用大数时需要注意:

  • BigInt类型不能和内置函数Math共同使用
  • BigInt不能和number类型进行运算, 只能和同为BigInt的数字进行运算
  • BigInt可以和number进行比较
  • BigInt不能转小数, 只能转整数, 遇到不是数字的情况(布尔值或者[] )内部应该会尝试先将其转为数字

验证例子1: n1为bigint, n2为数字, 使用Math.pow()函数来求两者的平方

    const n1 = 10n;try {console.log(Math.pow(n1, 2));} catch (error) {console.log(error);}const n2 = 10;console.log(Math.pow(n2, 2));

可以看到确实大数不能和math相关函数配合使用

验证例子2: 使用大数和number进行运算和比较

    const n1 = 10n;const n2 = 20;try {console.log(n1 + n2);} catch (error) {console.log(error);}console.log(n1 + BigInt(n2));console.log(n1 > n2);

结果大数不能和number进行运算, 可以和number进行比较

验证例子3: BigInt不能转小数

    try {console.log(BigInt(22.22));} catch (error) {console.log(error);}

报错内容大概是不能转换成bigint因为他不是个整数

BigInt的内部转换

    console.log(BigInt(true));console.log(BigInt(false));console.log(BigInt([]));console.log(BigInt("1"));

可以看到确实转换成功了, 此时你可能会认为内部可能做了+单目运算符或者Number()的运算, 但是结果是令人遗憾的

   try {console.log(BigInt(null));} catch (error) {console.log(error);}

具体转换也不必太过深究...实际也用不到

BigInt运算结果为小数会取整

BigInt的实例方法

  • toLocaleString 返回此数字的 language-sensitive 形式的字符串
  • toString  返回以指定基数(base)表示指定数字的字符串
  • valueOf  返回指定对象的基元值

    console.log(2n.toLocaleString());console.log(2n.toString(2));console.log(2n.valueOf());

可以看到 toString 确实能转成2进制, 其他两个概念大家可以自己查查

js内置对象 BigInt相关推荐

  1. JS 内置对象 String对象

    JS内置对象   String对象:字符串对象,提供了对字符串进行操作的属性和方法.   Array对象:数组对象,提供了数组操作方面的属性和方法.   Date对象:日期时间对象,可以获取系统的日期 ...

  2. 前端:JS/23/JS内置对象(String对象,Array对象,Date对象,Boolean对象,Number对象,Math对象),实例:求圆的面积,求直角三角形

    JS内置对象 1,String对象 字符串对象,提供了对字符串进行操作的属性和方法 2,Array对象 数组对象,提供了数组操作方面的属性和方法 3,Date对象 日期时间对象,可以获取系统的日期时间 ...

  3. 4月5日--课堂笔记--JS内置对象

    JavaScript 4.5 一.    JS内置对象 1.数组Array a)创建语法1:var arr=new Array(参数); i.       没有参数:创建一个初始容量为0的数组 ii. ...

  4. js内置对象【学习笔记】

    今天系统的学了一下javascript的内置对象.mark相关的知识点: 首先,什么是js的内置对象,它包括了些什么内容?(以下内容转自网上资源的整合) (W3shool JS手册地址:http:// ...

  5. window内置对象和js内置对象与方法

    window内置对象 一.navigator   代表着浏览器本身的信息: 代码名:navigator.appCodeName 浏览器语言:navigator.browserLanguage 操作系统 ...

  6. JS内置对象及其用法总结

    首先JS对象分为3种:自定义.内置.浏览器.今天就总结一下JS内置对象以及一些用法. 一.Math对象:不是一个构造函数,不需要new,直接调用即可. 1.Math.max(x,y);返回x,y的最大 ...

  7. JS内置对象操作方法整理

    JS对象操作方法整理 文章目录 JS对象操作方法整理 数组 ES5 ES6 字符串 String 日期 Date() 数字 Number 算数 Math 数组 ES5 concat() 连接两个或更多 ...

  8. js内置对象常用方法

    js内置对象常用方法 JS内置对象: ● String对象:处理所有的字符串操作 ● Math对象:处理所有的数学运算 ● Date对象:处理日期和时间的存储.转化和表达 ● Array对象:提供一个 ...

  9. js浏览器内置对象和js内置对象

    浏览器内置 1.Location 对象 hash :返回一个URL的锚部分 host 返回一个URL的主机名和端口 hostname 返回URL的主机名 href 返回完整的URL pathname ...

最新文章

  1. Kali Linux 装好系统后安装经常使用软件
  2. VC回调函数定义和使用
  3. 【R】Rstudio set up
  4. 有机化学芳烃 芳香性
  5. 如何在 SAP Fiori Elements List Report 表格工具栏里增添新的自定义按钮
  6. layui多文件上传讲解_Layui 多文件上传 SSH
  7. Java技术系列文章汇集(长期更新)
  8. LINUX优化--打开文件数保存方法
  9. Python中的枚举类型
  10. 中秋逢国庆 | 盛世华诞 阖家团圆
  11. C++11::lambda 的用法
  12. 扫码点菜系统代码_一顿火锅吃出474万天价?扫码点餐时,千万不要这样做
  13. HTTP下载龙卷风系列Office/Photoshop/金山词霸快译/
  14. 虎牙直播Js说书人弹幕
  15. 2007年考研时间安排表
  16. 让人拍案叫绝的创意都是如何诞生的
  17. 《寒江独钓 Windows内核安全》——串口的过滤
  18. 过压保护电路(OVP)
  19. html盒子在始终在左侧,div盒子在一行方法(左中右结构 CSS布局)
  20. C++的字符串输入方式

热门文章

  1. 眼科疾病可视化分析报告/Pycharm爬虫/数据处理/csv/plt画图
  2. PHP的四个文件包含函数是什么
  3. 安装包UI美化之路-打包过程中自动给安装包签名(防误报)
  4. ES6基础-ES6的扩展
  5. hdu 1124 Factorial(末尾0)
  6. icloud 5g内存使用攻略
  7. SSL证书会失效吗?什么情况下SSL证书会失效呢?
  8. 文件上传下载注意事项
  9. 云服务器到手必做的安全配置-windows篇
  10. 2010年全国100个城市房价 厦门第8漳州第52