当前位置: 首页 > article >正文

编程笔记 html5cssjs 072 JavaScript BigInt数据类型

编程笔记 html5&css&js 072 JavaScript BigInt数据类型

  • 一、BigInt 数据类型
  • 二、BigInt 的创建和使用
  • 三、BigInt 操作与方法
  • 三、示例
  • 小结

JavaScript BigInt 数据类型是一种内置的数据类型,用于表示大于 Number.MAX_SAFE_INTEGER(即2^53 - 1)的整数。由于JavaScript中的标准数字类型(Number)使用双精度浮点格式存储,它在表示非常大的整数时会受限于其精度,可能导致精度丢失或无法正确表示超过安全范围的整数值。

一、BigInt 数据类型

JavaScript BigInt 数据类型是一种内置的数据类型,用于表示大于 Number.MAX_SAFE_INTEGER(即2^53 - 1)的整数。由于JavaScript中的标准数字类型(Number)使用双精度浮点格式存储,它在表示非常大的整数时会受限于其精度,可能导致精度丢失或无法正确表示超过安全范围的整数值。
BigInt类型的引入解决了这个问题,允许程序员处理任意大小的整数,包括那些对于常规Number类型来说过大的整数。

二、BigInt 的创建和使用

  1. 字面量表示法
    创建BigInt对象最直接的方式是通过在整数值后面添加后缀 n

    let bigintValue = 9007199254740993n; // 这是一个BigInt值
    console.log(bigintValue); // 输出: 9007199254740993n
    
  2. 构造函数表示法
    如果需要将字符串或其他类型转换为BigInt,可以使用BigInt构造函数。

    let alsoBigInt = BigInt("9007199254740993"); // 字符串转BigInt
    console.log(alsoBigInt); // 输出: 9007199254740993n
    
    let fromNumber = BigInt(Number.MAX_SAFE_INTEGER + 1); // Number转BigInt
    console.log(fromNumber); // 输出: 9007199254740994n
    

三、BigInt 操作与方法

  • 算术运算:BigInt支持基本的算术运算,如加法、减法、乘法、除法、取模等,但需要注意的是,BigInt与Number不能直接进行混合运算,必须先将Number转换为BigInt。

    let a = 123456789012345678901234567890n;
    let b = 987654321098765432109876543210n;
    
    let sum = a + b;
    console.log(sum); // 正确执行,结果也是一个BigInt
    
    let mixAdd = a + 1; // 错误,BigInt和Number不能直接相加
    // 必须改为:
    let correctMixAdd = a + BigInt(1);
    
  • 比较操作:BigInt同样支持比较运算符(<, >, <=, >=, ==, !=)来比较两个BigInt或BigInt与Number(Number会被自动转换为BigInt以便比较)。

  • 位运算:BigInt也支持位操作符,如按位与(&)、按位或(|)、按位异或(^)、左移(<<)、右移(>>)以及无符号右移>>>(ES2022中新增)。

  • 库函数

    • BigInt.asUintN(width, bigint):将BigInt包装为指定宽度(以比特为单位)的无符号整数。
    • BigInt.asIntN(width, bigint):将BigInt包装为指定宽度(以比特为单位)的有符号整数。

三、示例

let uint64Value = BigInt.asUintN(64, BigInt("18446744073709551615")); // 最大64位无符号整数
console.log(uint64Value.toString()); // 输出: "18446744073709551615"

let int64Value = BigInt.asIntN(64, BigInt("-9223372036854775808")); // 最小64位有符号整数
console.log(int64Value.toString()); // 输出: "-9223372036854775808"

小结

总之,BigInt数据类型增强了JavaScript处理大整数的能力,使得在开发中能够更精确地进行大量整数计算而无需担心溢出问题。


http://www.kler.cn/a/228939.html

相关文章:

  • Vulnhub-Tr0ll靶机笔记
  • 数据可视化:让数据讲故事的艺术
  • 如何通过高防服务隐藏服务器源IP
  • 2025.1.16——三、supersqli 绕过|堆叠注入|handler查询法|预编译绕过法|修改原查询法
  • 32单片机综合应用案例——物联网(IoT)环境监测站(四)(内附详细代码讲解!!!)
  • 【Flink系列】6. Flink中的时间和窗口
  • TreeSet 集合
  • 管理类联考-复试-全流程演练-导航页
  • uniapp父子组件通信
  • 【问题解决】如何将一个服务器的docker迁移到另一个服务器
  • 【issue-YOLO】自定义数据集训练YOLO-v7 Segmentation
  • css1基础选择器
  • OfficeWeb365 Readfile 任意文件读取漏洞
  • 基于SpringBoot的后端导出Excel文件
  • Centos7配置登录失败处理导致root被锁定处理办法
  • 【axios报错异常】: Uncaught ReferenceError: axios is not defined
  • MySQL进阶45讲【10】MySQL为什么有时候会选错索引?
  • Linux Shell编程系列--开篇
  • c语言之三目运算符
  • 二叉树-堆应用(1)
  • 编程笔记 html5cssjs 074 Javascript 运算符
  • 前端工程化之:webpack2-1(常用扩展)
  • C++泛编程(4)
  • 免交互 、 字符处理与高级变量
  • JavaWeb之HTML-CSS --黑马笔记
  • 【node】Node.js的常用内置模块: