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

【ES6复习笔记】数值扩展(16)

介绍

在 JavaScript 中,数值扩展提供了一些额外的功能,使得处理数值变得更加方便。本教程将介绍一些常用的数值扩展方法和属性。

1. Number.EPSILON

Number.EPSILON 是 JavaScript 表示的最小精度。它的值接近于 2.2204460492503130808472633361816E-16。这个属性通常用于比较浮点数是否相等,因为在计算机中,浮点数的计算可能会存在微小的误差。

// 示例代码
function equal(a, b){
    if(Math.abs(a-b) < Number.EPSILON){
        return true;
    }else{
        return false;
    }
}
console.log(0.1 + 0.2 === 0.3); // 输出: false
console.log(equal(0.1 + 0.2, 0.3)); // 输出: true

2. 二进制和八进制表示法

在 JavaScript 中,可以使用 0b 前缀表示二进制数,使用 0o 前缀表示八进制数。这使得在代码中直接使用二进制和八进制变得更加直观。

// 示例代码
let b = 0b1010; // 二进制表示的 10
let o = 0o777; // 八进制表示的 511
let d = 100; // 十进制表示的 100
let x = 0xff; // 十六进制表示的 255
console.log(x); // 输出: 255

3. Number.isFinite()

Number.isFinite() 方法用于检测一个数值是否为有限数。如果是有限数,则返回 true,否则返回 false。

// 示例代码
console.log(Number.isFinite(100)); // 输出: true
console.log(Number.isFinite(100/0)); // 输出: false
console.log(Number.isFinite(Infinity)); // 输出: false

4. Number.isNaN()

Number.isNaN() 方法用于检测一个数值是否为 NaN(Not a Number)。如果是 NaN,则返回 true,否则返回 false。

// 示例代码
console.log(Number.isNaN(123)); // 输出: false

5. Number.parseInt() 和 Number.parseFloat()

Number.parseInt() 和 Number.parseFloat() 方法分别用于将字符串转换为整数和浮点数。

// 示例代码
console.log(Number.parseInt('5211314love')); // 输出: 5211314
console.log(Number.parseFloat('3.1415926神奇')); // 输出: 3.1415926

6. Number.isInteger()

Number.isInteger() 方法用于判断一个数是否为整数。如果是整数,则返回 true,否则返回 false。

// 示例代码
console.log(Number.isInteger(5)); // 输出: true
console.log(Number.isInteger(2.5)); // 输出: false

7. Math.trunc()

Math.trunc() 方法用于将数字的小数部分抹掉,只返回整数部分。

// 示例代码
console.log(Math.trunc(3.5)); // 输出: 3

8. Math.sign()

Math.sign() 方法用于判断一个数到底为正数、负数还是零。如果是正数,返回 1;如果是负数,返回 -1;如果是零,返回 0。

// 示例代码
console.log(Math.sign(100)); // 输出: 1
console.log(Math.sign(0)); // 输出: 0
console.log(Math.sign(-20000)); // 输出: -1

以上就是 JavaScript 数值扩展的一些常用方法和属性的介绍。通过这些扩展,你可以更方便地处理数值类型的数据。


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

相关文章:

  • KylinOS V10 SP3下编译openGauss与dolphin插件
  • DDoS防护中的流量清洗与智能调度
  • Centos下的OpenSSH服务器和客户端
  • React Native 集成原生Android功能
  • Word窗体联动Excel实现级联组合框
  • 面试场景题系列:设计一致性哈希系统
  • 【更新】Docker新手入门教程2:在Windows系统通过compose创建多个mysql镜像并配置应用
  • 数字IC后端设计实现十大精华主题分享
  • 【数据科学导论】第一二章·大数据与数据表示与存储
  • 如何不让场景UI受后处理影响
  • k-Means聚类算法 HNUST【数据分析技术】(2025)
  • 宝塔面板跨服务器数据同步教程:双机备份零停机
  • centos7 下使用 Docker Compose
  • Git工作流的最佳实践
  • flask后端开发(1):第一个Flask项目
  • stm32制作CAN适配器5--WinUsb上位机编写
  • SpringBoot 整合Web开放
  • 推动开源数据生态:SeaTunnel ByConity技术沙龙精彩回顾
  • Qt 的信号槽机制详解:之信号槽引发的 Segmentation Fault 问题拆析(上)
  • Linux高级--2.4.1 网络概念(分层、TCP)
  • webpakc介绍
  • 一个从oracle使用spool导出数据到kadb的脚本
  • 基于Springcloud的智能社区服务系统
  • 浅谈Java注解之ResponseBody
  • CentOS7-yum服务器的搭建
  • Pytorch详解 train() 和 eval() 模式会影响Layer Norm吗?(中英双语)