😄
前端学习
  • 👋Welcome
  • 📖前端基础
    • HTML
      • 基础知识
      • 进阶知识
      • HTML5
    • CSS
      • 基础知识
      • 进阶知识
      • CSS 专题
        • CSS 选择器
        • CSS 布局
        • CSS 动画
        • CSS 画图
        • 响应式方案
        • CSS BEM 规范
        • CSS 案例
    • JavaScript
      • 基础知识
      • 进阶知识
      • 常用内置对象
        • Array 对象
        • String 对象
        • Number 对象
        • Boolean 对象
        • Math 对象
        • Date 对象
        • RegExp 对象
        • Object 对象
      • JS 专题
        • 数据类型
        • 原型链/继承
        • 对象赋值与拷贝
        • this 的指向
        • 异步操作
        • 模块化
        • 设计模式
    • 浏览器
      • 浏览器模型
      • 事件
      • 位置属性
      • Web 缓存
      • 本地存储
    • 综合内容
      • 前端跨域
      • 登录鉴权
      • 文件上传与下载
  • 🏗️前端框架
    • Vue.js
      • 基础知识
      • Vue 组件通信
      • Vuex 使用指南
      • Vue 动画
      • 静态网站框架 VuePress
    • React.js
      • 基础知识
      • 组件通信
  • 📦计算机基础/后端
    • 图解计算机网络
    • HTTP/HTTPS
    • TCP/UDP
    • Node.js
    • MongoDB
  • 🛠️开发工具
    • 版本控制工具-Git
      • git submodule
    • 构建工具-Webpack
    • 错误监控工具-Sentry
    • 单元测试工具-Jest
    • 包管理工具-NPM
    • 代码编辑器-VSCode
  • 🤔专题内容
    • 前端工程化
    • 代码规范
      • JavaScript 代码规范
      • CSS 代码规范
      • Vue 代码规范
      • Git Commit 规范
      • 代码规范配置
    • 网络安全与防御
    • 性能优化
    • 算法编程
    • 数据可视化
  • 🧑‍💻 面试相关
    • 面试知识总结
    • 面试问题总结
    • 面试常见编程
    • 面试资源汇总
  • 🍭其他
    • 项目经验❗️
    • 踩坑指南❗️
      • JavaScript 踩坑指南
      • CSS 踩坑指南
      • Vue 踩坑指南
    • 学习资源
    • 综合收藏夹
由 GitBook 提供支持
在本页
  • 1. 静态属性
  • 2. 静态方法
  • 3. 实例方法

这有帮助吗?

  1. 前端基础
  2. JavaScript
  3. 常用内置对象

Number 对象

上一页String 对象下一页Boolean 对象

最后更新于3年前

这有帮助吗?

参考资料:

const a = new Number(1)

1. 静态属性

Number.POSITIVE_INFINITY // Infinity
Number.NEGATIVE_INFINITY // -Infinity
Number.NaN // NaN

Number.MAX_VALUE // 1.7976931348623157e+308
Number.MAX_VALUE < Infinity // true

Number.MIN_VALUE // 5e-324
Number.MIN_VALUE > 0 // true

Number.MAX_SAFE_INTEGER // 9007199254740991
Number.MIN_SAFE_INTEGER // -9007199254740991

Number.EPSILON // 代表一个极小量

Number.EPSILON 是极小的常量,对于 64 浮点数来说等于 2 的 -52 次方,引入一个这么小的量的目的,在于为浮点数计算,设置一个误差范围,误差如果小于这个值,就可以认为已经没有意义了,即不存在误差了。

// 0.1 + 0.2 与 0.3 得到的结果是 false,这是由于二进制存储的原因
function withinErrorMargin (left, right) {
  return Math.abs(left - right) < Number.EPSILON;
}
0.1 + 0.2 === 0.3 // false
withinErrorMargin(0.1 + 0.2, 0.3) // true

2. 静态方法

// Number.isFinite() - 检查一个数值是否为有限的,即不是 Infinity。
Number.isFinite(1234555555) // true
​
// Number.isNaN() - 检查一个数值是否为NaN
Number.isNaN(5) // false
Number.isNaN(NaN) // true
​
// Number.isInteger() - 判断一个数值是否为整数,不是数字也则返回false
Number.isInteger(5) // true
Number.isInteger(5.0) // true
Number.isInteger(5.1) // false
​
// Number.isSafeInteger() - 判断一个整数是否落在安全范围之内,也就是 Number.MAX_SAFE_INTEGER 和 Number.MIN_SAFE_INTEGER
Number.isSafeInteger(5) // true

注意由于存储的原因,JavaScript 内部,整数和浮点数采用的是同样的储存方法,因此 isInteger 方法中 25.0 也是 true 的。

要区别于传统的全局方法 isFinite() / isNaN() 和 Number 对象的静态方法,传统方法先调用 Number() 将非数值转为数值再判断。

isFinite(25) // true
isFinite("25") // true
Number.isFinite(25) // true
Number.isFinite("25") // false

isNaN(NaN) // true
isNaN("NaN") // true
Number.isNaN(NaN) // true
Number.isNaN("NaN") // false
Number.isNaN(1) // false

3. 实例方法

// Number.prototype.toString() - 参数代表进制,默认十进制
(10).toString(2) // "1010"
(10).toString(8) // "12"
(10).toString(16) // "a"

// Number.prototype.toFixed() - 先将一个数转为指定位数的小数,然后返回这个小数对应的字符串
(10).toFixed(2) // "10.00"
(10.005).toFixed(2) // "10.01"

// Number.prototype.toExponential() - 将一个数转为科学计数法形式
(1234).toExponential()  // "1.234e+3"
(1234).toExponential(1) // "1.2e+3"
(1234).toExponential(2) // "1.23e+3"

// Number.prototype.toPrecision() - 将一个数转为指定位数的有效数字
(12.34).toPrecision(1) // "1e+1"
(12.34).toPrecision(2) // "12"
(12.34).toPrecision(3) // "12.3"
(12.34).toPrecision(4) // "12.34"
(12.34).toPrecision(5) // "12.340"

注意Number.prototype.toFixed()返回的结果是字符串而不是数字。

如果你对内容有任何疑问,欢迎提交 或

📖
Number 对象
❕issues
✉️ email