百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程字典 > 正文

JavaScript ES6 - 数值扩展

toyiye 2024-06-21 12:07 10 浏览 0 评论

本章节的主要内容是: ES6 数值扩展

一: 数值扩展: 数值处理的新增特性
    1. 新增方法
       1. 主要是关于数学处理, 如: 立方根、指数 等等
    2. 方法调整
       1. 有一部分是将原来的全局处理数值相关的方法, 移植到了 Number  对象上 <但是它们的功能不变> 。
    3. 数值扩展常用 API 总结:
       1. Number.isFinite()
       2. Number.isNaN()

如图所示:

1. 二进制与八进制

/**
1. 二进制与八进制
   1. 在 ES6 中, 二进制的表示方法都是以 0b 开头
   2. 八进制的表示方法是以 0o 开头
   3. 小知识点:
      1. 0b 中的 b 大小写均可以 。
      2. 0o 中的 o 大小写均可以 。
 */
{
  console.log('二进制数字的表示方式 - 输出结果为 十进制: ', 0b111110111); // 二进制数字的表示方式 - 输出结果为 十进制:  503
  console.log('八进制的表示方法 - 输出结果为 十进制: ', 0o767); // 八进制的表示方法 - 输出结果为 十进制:  503

  /**
   * 测试大小写均可
   */
  console.log('二进制数字的表示方式 - B 大小写均可以: ', 0B111110111); // 二进制数字的表示方式 - b 大小写均可以:  503
  console.log('八进制的表示方法 - O 大小写均可以: ', 0O767); // 八进制的表示方法 - O 大小写均可以:  503
}

2. ES6 Number.isFinite() 方法

/**
2. Number.isFinite() 方法
   1. 用来检验一个数值是否是有限的 <即是否是在有效值范围之内的>。
 */
{
  /**
   * 正常值:
   */
  console.log('isFinite 方法 -- 15: ', Number.isFinite(15)); // isFinite 方法 -- 15:  true
  console.log('isFinite 方法 -- 小数 -- 0.0001', Number.isFinite(0.0001)); // isFinite 方法 -- 小数 -- 0.0001 true
  console.log('isFinite 方法 -- 负数 -- -15', Number.isFinite(-15)); // isFinite 方法 -- 负数 -- -15 true
  /**
   * NaN 为什么是 false? 因为它本身就不是一个数, 使用 Number.isFinite() 方法的前提是首先需要判断当前值得是一个数 。
   */
  console.log('isFinite 方法 -- NaN: ', Number.isFinite(NaN)); // isFinite 方法 -- NaN:  false
  console.log('isFinite 方法 -- 字符串: ', Number.isFinite('字符串')); // isFinite 方法 -- 字符串:  false
  console.log('isFinite 方法 -- "15": ', Number.isFinite('15')); // isFinite 方法 -- "15":  false
  /**
   * 分母为 0
   */
  console.log('isFinite 方法 -- 1/0: ', Number.isFinite(1/0)); // isFinite 方法 -- 1/0:  false
  console.log('isFinite 方法 -- true/0: ', Number.isFinite('true'/0)); // isFinite 方法 -- true/0:  false
  /**
   * bool 值
   */
  console.log('isFinite 方法 -- true: ', Number.isFinite(true)) // isFinite 方法 -- true:  false
  console.log('isFinite 方法 -- false: ', Number.isFinite(false)) // isFinite 方法 -- false:  false
}

3. ES6 Number.isNaN() 方法:

/**
3. Number.isNaN() 方法:
   1. 用来检验一个值是否为 NaN
 */
{
  /**
   * 判断结果为 true 的情况
   */
  console.log('Number.isNaN 方法 -- NaN: ', Number.isNaN(NaN)); // Number.isNaN 方法 -- NaN:  true
  console.log('Number.isNaN 方法 -- 1/NaN:', Number.isNaN(1/NaN)) // Number.isNaN 方法 -- 1/NaN: true
  console.log('Number.isNaN 方法 -- "true0"/0:', Number.isNaN('true'/0))  // Number.isNaN 方法 -- "true0"/0: true
  console.log('Number.isNaN 方法 -- "true"/"true":', Number.isNaN('true'/'true')) // Number.isNaN 方法 -- "true"/"true": true
  console.log('Number.isNaN 方法 -- ""/"":', Number.isNaN(''/'')) // Number.isNaN 方法 -- ""/"": true

  /**
   * 判断结果为 false 的情况
   */
  console.log('Number.isNaN 方法 -- 0:', Number.isNaN(0)); // Number.isNaN 方法 -- 0: false
  console.log('Number.isNaN 方法 -- 字符串 - 123:', Number.isNaN('123')) // Number.isNaN 方法 -- 字符串 - 123: false
  console.log('Number.isNaN 方法 -- 字符串 - 空:', Number.isNaN('')) // Number.isNaN 方法 -- 字符串 - 空: false
  console.log('Number.isNaN 方法 -- bool值 true:', Number.isNaN(true)) // Number.isNaN 方法 -- bool值 true: false
  console.log('Number.isNaN 方法 -- bool值 false:', Number.isNaN(false)) // Number.isNaN 方法 -- bool值 false: false
}

4. ES5 isFinite() isNaN() 两个方法 与 ES6 Number.isFinite() Number.isNaN() 方法的区别在于

/**
4. ES5 isFinite() isNaN() 两个方法 与 ES6 Number.isFinite()  Number.isNaN() 方法的区别在于:
   1. ES5 是先调用 Number() 方法将非数值转化为数值, 二 ES6 中的新方法只对数值有效 。
   2. 即 Number.isFinite() 只对数值有效, 对于非数值一律返回 false; Number.isNaN() 只有对于 NaN 返回 true, 非 NaN 一律返回 false 。
 */
{
  /**
   * ES5 isFinite() 与 ES6 Number.isFinite() 对比
   */
  console.log('ES5 isFinite 方法', isFinite(5)); // ES5 isFinite 方法 true
  console.log('ES5 isFinite 方法', isFinite('88')); // ES5 isFinite 方法 true

  console.log('ES6 Number.isFinite 方法', Number.isFinite(5)); // ES6 Number.isFinite 方法 true
  console.log('ES6 Number.isFinite 方法', Number.isFinite('88')); // ES6 Number.isFinite 方法 false

  /**
   * ES5 isNaN() 与 ES6 Number.isNaN() 对比
   */
    console.log('ES5 isNaN 方法', isNaN(NaN)); // ES5 isNaN 方法 true
  console.log('ES5 isNaN 方法', isNaN('NaN')); // ES5 isNaN 方法 true
  console.log('ES6 Number.isNaN 方法', Number.isNaN(NaN)); // ES6 Number.isNaN 方法 true
  console.log('ES6 Number.isNaN 方法', Number.isNaN('NaN')); // ES6 Number.isNaN 方法 false
}

5. ES6 Number.isInterger

/**
5. Number.isInterger
   1. 用来判断一个值是否为整数 。
   2. 它接收的参数必须是一个数, 否则它的返回结果为 false 。
   2. 小知识点:
      1. 在 JS 中, 整数和浮点数是同样的存储方法 。
 */
{
  console.log('Number.isInterger - 判断一个值是否为整数 - 25:', Number.isInteger(25)); // Number.isInterger - 判断一个值是否为整数 - 25: true
  console.log('Number.isInterger - 判断一个值是否为整数 - 25.0:', Number.isInteger(25.0)); // Number.isInterger - 判断一个值是否为整数 - 25.0: true
  console.log('Number.isInterger - 判断一个值是否为整数 - 25.1:', Number.isInteger(25.1)); // Number.isInterger - 判断一个值是否为整数 - 25.1: false
  console.log('Number.isInterger - 判断一个值是否为整数 - "25":', Number.isInteger('25')); // Number.isInterger - 判断一个值是否为整数 - "25": false
  console.log('Number.isInterger - 判断一个值是否为整数 - true:', Number.isInteger(true)); // Number.isInterger - 判断一个值是否为整数 - true: false
}

6. ES6 Number.isSafeInteger()

/**
6. Number.isSafeInteger()
   1. 用来判断一个数<整数>是否是 -2 的 53 次方 到 2 的 53 次方 之间 (不包含这两个端点) 。
   2. 如果超过这个区间的话, 存储就会不准确 。
   3. 上下限 '常量' 的表示方法:
      1. 上限: Number.MAX_SAFE_INTEGER
      2. 下限: Number.MIN_SAFE_INTEGER
   4. 注意小细节:
      1. 它的参数必须是一个数 。
 */
{
  console.log('Number.MAX_SAFE_INTEGER - 上限: ', Number.MAX_SAFE_INTEGER); // Number.MAX_SAFE_INTEGER - 上限:  9007199254740991
  console.log('Number.MIN_SAFE_INTEGER - 下限: ', Number.MIN_SAFE_INTEGER); // Number.MAX_SAFE_INTEGER - 上限:  -9007199254740991

  console.log('Number.isSafeInteger() -- 判断一个值是否在安全区间内 - 10:', Number.isSafeInteger(10)); // Number.isSafeInteger() -- 判断一个值是否在安全区间内 - 10: true
  console.log('Number.isSafeInteger() -- 判断一个值是否在安全区间内 - a<字符串>:', Number.isSafeInteger('a')); // Number.isSafeInteger() -- 判断一个值是否在安全区间内 - a<字符串>: false
  console.log('Number.isSafeInteger() -- 判断一个值是否在安全区间内 - 1.1<小数>:', Number.isSafeInteger(1.1)); // Number.isSafeInteger() -- 判断一个值是否在安全区间内 - 1.1<小数>: false
}

7. ES6 Math.trunc()

/**
7. Math.trunc()
   1. 去除一个数的小数部分, 返回整数部分 <只获取整数部分, 不进行四舍五入或者向上向下取整>。
   2. 细节知识点:
      1. 对于非数值, Math.trunc() 内部使用 Number 方法先将其转换为数值 。
 */
// ES5 数值取整方法
{
  // Math.round(): 返回一个数字四舍五入后的整数部分 。
  console.log('Math.round - 小数部分小于 0.5: ', Math.round(6.01)); // Math.round - 小数部分小于 0.5:  6
  console.log('Math.round - 小数部分大于 0.5: ', Math.round(6.9)); // Math.round - 小数部分大于 0.5:  7

  // Math.ceil(): 返回一个大于或等于数字的最小整数, 即向上取整 。
  console.log('Math.ceil - 小数部分小于 0.5: ', Math.ceil(6.01)); // Math.ceil - 小数部分小于 0.5:  7
  console.log('Math.ceil - 小数部分大于 0.5: ', Math.ceil(6.9)); // Math.ceil - 小数部分大于 0.5:  7

  // Math.floor(): 返回一个小于或等于数字的最小整数, 即向下取整 。
  console.log('Math.floor - 小数部分小于 0.5: ', Math.floor(6.01)); // Math.floor - 小数部分小于 0.5:  6
  console.log('Math.floor - 小数部分大于 0.5: ', Math.floor(6.9)); // Math.floor - 小数部分大于 0.5:  6
}
// ES6 数值取整方法:
{
  console.log('Math.trunc() -- 小数部分小于 0.5 - 4.1: ', Math.trunc(4.1)); // Math.trunc() -- 小数部分小于 0.5 - 4.1:  4
  console.log('Math.trunc() -- 小数部分大于 0.5 - 4.81: ', Math.trunc(4.81)); // Math.trunc() -- 小数部分大于 0.5 - 4.81:  4

  // 细节部分:
  console.log('Math.trunc() 内部使用 Number 方法先将其转换为数值 - 数值字符串: ', Math.trunc('-12.121212')); // Math.trunc() 内部使用 Number 方法先将其转换为数值 - 数值字符串:  -12
  console.log('Math.trunc() 内部使用 Number 方法先将其转换为数值 - NaN: ', Math.trunc(NaN)); // Math.trunc() 内部使用 Number 方法先将其转换为数值 - NaN:  NaN
  console.log('Math.trunc() 内部使用 Number 方法先将其转换为数值 - 字符串: ', Math.trunc('字符串')); // Math.trunc() 内部使用 Number 方法先将其转换为数值 - 字符串:  NaN
  console.log('Math.trunc() 内部使用 Number 方法先将其转换为数值 - ""<空字符串>: ', Math.trunc('')); // Math.trunc() 内部使用 Number 方法先将其转换为数值 - ""<空字符串>:  0
  console.log('Math.trunc() 内部使用 Number 方法先将其转换为数值 - <空: 不传参数>: ', Math.trunc()); // Math.trunc() 内部使用 Number 方法先将其转换为数值 - <空: 不传参数>:  NaN
}

8. ES6 Math.sign()

/**
8. Math.sign()
   1. 判断一个数是: 正数 / 负数 / 0
   2. 输入参数的返回结果:
      1. 参数为负数: 返回 1
      2. 参数为正数: 返回 -1
      3. 参数为 0: 返回 0
      4. 参数为 -0: 返回 -0
      5. 其它值返回 NaN
   2. 细节知识点:
      1. 对于非数值, 会将其转换为数值 。
 */
{
  console.log('Math.sign() -- 参数为正数: ', Math.sign(555)); // Math.sign() -- 参数为正数:  1
  console.log('Math.sign() -- 参数为 0: ', Math.sign(0)); // Math.sign() -- 参数为 0:  0
  console.log('Math.sign() -- 参数为 -0: ', Math.sign(-0)); // Math.sign() -- 参数为 -0:  -0
  // console.log('Math.sign() -- 参数为 0000000: ', Math.sign(0000000)); // Math.sign() -- 参数为 0000000:  0
  console.log('Math.sign() -- 参数为负数: ', Math.sign(-22222)); // Math.sign() -- 参数为负数:  -1
}

9. ES6 Math.cbrt()

/**
9. Math.cbrt()
   1. 计算一个数的立方根
      1. 当参数为字符串且不为数值字符串时, 返回 NaN 。
   2. 细节知识点:
      1. 对于非数值, 会将其转换为数值 。
 */
{
  console.log('Math.cbrt() -- 参数=-1: ', Math.cbrt(-1)); // Math.cbrt() -- 参数=-1:  -1
  console.log('Math.cbrt() -- 参数=1: ', Math.cbrt(1)); // Math.cbrt() -- 参数=1:  1
  console.log('Math.cbrt() -- 参数=0: ', Math.cbrt(0)); // Math.cbrt() -- 参数=0:  0
  console.log('Math.cbrt() -- 参数=4: ', Math.cbrt(4)); // Math.cbrt() -- 参数=4:  1.5874010519681996

  /**
   * 参数为字符串:
   */
  console.log('Math.cbrt() -- 参数="9"<数字字符串>: ', Math.cbrt('9')); // Math.cbrt() -- 参数="9"<数字字符串>:  2.080083823051904
  console.log('Math.cbrt() -- 参数=:<非数字字符串>', Math.cbrt('字符串')); // Math.cbrt() -- 参数=:<非数字字符串> NaN
}

以上代码执行结果, 如图所示:

之前有整理过部分知识点, 现在将整理的相关内容, 验证之后慢慢分享给大家; 这个专题是 "前端ES6基础" 的相关专栏; 不积跬步,无以至千里, 戒焦戒躁 。

如果对大家有所帮助,可以点个关注、点个赞; 文章会持续打磨 。

有什么想要了解的前端知识, 可以在评论区留言, 会及时分享所相关内容 。

相关推荐

为何越来越多的编程语言使用JSON(为什么编程)

JSON是JavascriptObjectNotation的缩写,意思是Javascript对象表示法,是一种易于人类阅读和对编程友好的文本数据传递方法,是JavaScript语言规范定义的一个子...

何时在数据库中使用 JSON(数据库用json格式存储)

在本文中,您将了解何时应考虑将JSON数据类型添加到表中以及何时应避免使用它们。每天?分享?最新?软件?开发?,Devops,敏捷?,测试?以及?项目?管理?最新?,最热门?的?文章?,每天?花?...

MySQL 从零开始:05 数据类型(mysql数据类型有哪些,并举例)

前面的讲解中已经接触到了表的创建,表的创建是对字段的声明,比如:上述语句声明了字段的名称、类型、所占空间、默认值和是否可以为空等信息。其中的int、varchar、char和decimal都...

JSON对象花样进阶(json格式对象)

一、引言在现代Web开发中,JSON(JavaScriptObjectNotation)已经成为数据交换的标准格式。无论是从前端向后端发送数据,还是从后端接收数据,JSON都是不可或缺的一部分。...

深入理解 JSON 和 Form-data(json和formdata提交区别)

在讨论现代网络开发与API设计的语境下,理解客户端和服务器间如何有效且可靠地交换数据变得尤为关键。这里,特别值得关注的是两种主流数据格式:...

JSON 语法(json 语法 priority)

JSON语法是JavaScript语法的子集。JSON语法规则JSON语法是JavaScript对象表示法语法的子集。数据在名称/值对中数据由逗号分隔花括号保存对象方括号保存数组JS...

JSON语法详解(json的语法规则)

JSON语法规则JSON语法是JavaScript对象表示法语法的子集。数据在名称/值对中数据由逗号分隔大括号保存对象中括号保存数组注意:json的key是字符串,且必须是双引号,不能是单引号...

MySQL JSON数据类型操作(mysql的json)

概述mysql自5.7.8版本开始,就支持了json结构的数据存储和查询,这表明了mysql也在不断的学习和增加nosql数据库的有点。但mysql毕竟是关系型数据库,在处理json这种非结构化的数据...

JSON的数据模式(json数据格式示例)

像XML模式一样,JSON数据格式也有Schema,这是一个基于JSON格式的规范。JSON模式也以JSON格式编写。它用于验证JSON数据。JSON模式示例以下代码显示了基本的JSON模式。{"...

前端学习——JSON格式详解(后端json格式)

JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScriptProgrammingLa...

什么是 JSON:详解 JSON 及其优势(什么叫json)

现在程序员还有谁不知道JSON吗?无论对于前端还是后端,JSON都是一种常见的数据格式。那么JSON到底是什么呢?JSON的定义...

PostgreSQL JSON 类型:处理结构化数据

PostgreSQL提供JSON类型,以存储结构化数据。JSON是一种开放的数据格式,可用于存储各种类型的值。什么是JSON类型?JSON类型表示JSON(JavaScriptO...

JavaScript:JSON、三种包装类(javascript 包)

JOSN:我们希望可以将一个对象在不同的语言中进行传递,以达到通信的目的,最佳方式就是将一个对象转换为字符串的形式JSON(JavaScriptObjectNotation)-JS的对象表示法...

Python数据分析 只要1分钟 教你玩转JSON 全程干货

Json简介:Json,全名JavaScriptObjectNotation,JSON(JavaScriptObjectNotation(记号、标记))是一种轻量级的数据交换格式。它基于J...

比较一下JSON与XML两种数据格式?(json和xml哪个好)

JSON(JavaScriptObjectNotation)和XML(eXtensibleMarkupLanguage)是在日常开发中比较常用的两种数据格式,它们主要的作用就是用来进行数据的传...

取消回复欢迎 发表评论:

请填写验证码