当前位置:首页 > JavaScript

js number 实现标准

2026-02-03 03:23:09JavaScript

JavaScript 数字实现标准

JavaScript 的数字实现遵循 ECMAScript 标准(ECMA-262),具体基于 IEEE 754 双精度浮点数标准(64位)。以下是核心实现细节:

数字类型

JavaScript 仅有一种数字类型 Number,采用双精度浮点数表示,占用 64 位内存:

  • 1 位符号位
  • 11 位指数位
  • 52 位尾数位(有效数字)

数值范围为:

  • 最大安全整数:2^53 - 1Number.MAX_SAFE_INTEGER = 9007199254740991)
  • 最小安全整数:-2^53 + 1Number.MIN_SAFE_INTEGER = -9007199254740991)
  • 最大浮点值:1.7976931348623157e+308Number.MAX_VALUE
  • 最小浮点值:5e-324Number.MIN_VALUE

特殊值

  • NaN(Not a Number):非数字值,通过 isNaN() 检测
  • Infinity-Infinity:超出数值范围时的表示
  • +0-0:符号位不同的零值,通过 1/+01/-0 可区分

精度问题

由于二进制浮点数特性,十进制小数可能无法精确表示:

0.1 + 0.2 === 0.3; // false

解决方法:

  • 使用整数运算后缩放(如以分为单位计算金额)
  • 使用 toFixed() 控制显示精度(注意返回字符串)
  • 引入第三方库如 decimal.js

新特性

ES6 新增:

  • Number.isInteger() 检测整数
  • Number.isSafeInteger() 检测安全整数
  • Number.EPSILON 表示最小精度差值(约 2.22e-16)
  • Number.parseInt()Number.parseFloat() 全局方法的移植

BigInt

ES2020 引入 BigInt 类型解决大整数问题:

const bigNum = 9007199254740991n;
bigNum + 1n; // 正确运算

js number 实现标准

标签: 标准js
分享给朋友:

相关文章

js实现

js实现

实现 JavaScript 功能的方法 在 JavaScript 中实现特定功能通常涉及多个步骤。以下是常见的实现方法: 基础语法和变量声明 使用 let 或 const 声明变量: let co…

js实现轮播

js实现轮播

实现轮播图的基本思路 轮播图的核心逻辑是通过定时切换展示的图片或内容,通常结合左右滑动按钮和指示器(小圆点)增强交互性。以下是基于原生JavaScript的实现方法。 HTML结构 构建轮播图的HT…

js实现轮播图

js实现轮播图

基础轮播图实现 使用HTML、CSS和JavaScript实现一个简单的自动轮播图。HTML结构包含一个容器和多个图片项。 <div class="slider"> <div…

js实现继承

js实现继承

原型链继承 通过将子类的原型指向父类的实例实现继承。子类实例可以访问父类原型上的属性和方法。 function Parent() { this.name = 'parent'; } Parent…

js实现打印

js实现打印

使用window.print()方法实现打印 在JavaScript中,可以通过调用window.print()方法直接触发浏览器的打印功能。这会打开系统的打印对话框,用户可以选择打印机和设置打印选项…

js实现日历

js实现日历

实现日历的基本思路 使用JavaScript实现日历的核心是动态生成日期表格,并处理月份切换逻辑。需要计算当前月的天数、起始星期几,并动态渲染到页面上。 获取当前日期信息 通过Date对象获取当前…