当前位置:首页 > JavaScript

js number 实现标准

2026-02-03 03:23:09JavaScript

JavaScript 数字实现标准

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

数字类型

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

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

数值范围为:

js number 实现标准

  • 最大安全整数: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

解决方法:

js number 实现标准

  • 使用整数运算后缩放(如以分为单位计算金额)
  • 使用 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
分享给朋友:

相关文章

js实现轮播

js实现轮播

实现基础轮播效果 使用HTML结构创建轮播容器和图片元素: <div class="carousel"> <div class="carousel-inner">…

js实现验证码

js实现验证码

实现验证码的JavaScript方法 生成随机验证码 使用Math.random()生成随机字符串,结合数字和字母: function generateCaptcha() { const cha…

js实现跳转

js实现跳转

使用 window.location 跳转 通过修改 window.location.href 实现页面跳转,这是最常用的方法。 window.location.href = 'https://…

js实现轮播图

js实现轮播图

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

js 实现vue

js 实现vue

Vue.js 的基本实现 在 JavaScript 中实现 Vue.js 的核心功能,可以通过数据绑定、响应式系统和虚拟 DOM 来实现。以下是实现 Vue.js 核心功能的简化版本。 数据响应式系…

js类实现

js类实现

使用类实现 JavaScript 功能 在 JavaScript 中,类(Class)是一种语法糖,基于原型继承机制。通过 class 关键字可以更直观地定义对象模板。 基本类定义 class…