当前位置:首页 > 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 类型解决大整数问题:

js number 实现标准

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

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

相关文章

js实现类

js实现类

JavaScript 实现类的几种方式 JavaScript 是一种基于原型的语言,但在 ES6 之后引入了 class 语法糖,使得实现类更加直观。以下是几种常见的实现方式: 使用构造函数 传统的…

节流js实现

节流js实现

节流(Throttle)的实现原理 节流是一种限制函数执行频率的技术,确保函数在一定时间间隔内最多执行一次。适用于高频触发事件(如滚动、输入、窗口调整等)的场景。 基础实现方式 使用时间戳判断是否执…

js实现文字滚动

js实现文字滚动

实现文字滚动的几种方法 使用CSS动画实现滚动 通过CSS的@keyframes和transform属性可以实现平滑的文字滚动效果。 <style> .scroll-text { w…

js实现下拉菜单

js实现下拉菜单

使用HTML和CSS创建基础结构 HTML部分需要包含一个触发下拉的按钮和隐藏的下拉菜单内容: <div class="dropdown"> <button class="dr…

js实现搜索

js实现搜索

实现搜索功能的方法 在JavaScript中实现搜索功能可以通过多种方式完成,以下是几种常见的实现方法。 使用数组的filter方法 通过数组的filter方法可以筛选出符合条件的数据项。假设有一个…

js实现上传文件

js实现上传文件

文件上传的基本实现 使用HTML的<input type="file">元素配合JavaScript的File API可以实现文件上传功能。 <input type="file"…