iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >JavaScript数据结构Number实例分析
  • 948
分享到

JavaScript数据结构Number实例分析

2023-06-29 05:06:25 948人浏览 八月长安
摘要

本文小编为大家详细介绍“javascript数据结构Number实例分析”,内容详细,步骤清晰,细节处理妥当,希望这篇“JavaScript数据结构Number实例分析”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧

本文小编为大家详细介绍“javascript数据结构Number实例分析”,内容详细,步骤清晰,细节处理妥当,希望这篇“JavaScript数据结构Number实例分析”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

    前言:

    NumberJavaScript的基本数据结构,是对应数值的应用类型。要创建一个 Number 对象,就使用 Number 构造函数并传入一个数值。在 JavaScript 中没有其他语言这么多的数字类型。根据 ECMAScript 标准,数字只有一种类型,它是“双精度 64 位二进制格式 IEEE 754 值”。这种类型用于存储整数和分数,相当于 Java 和 C 中的 double 数据类型。这个独特性也就导致了 0.1+0.2 为什么不等于 0.3。本文介绍JavaScript使用 Number 的常见问题。

    先来看下下面的代码:

    console.log(0.1 + 0.2); // 0.30000000000000004

    从上面运行结果可以看出 0.1+0.2 不等于 0.3。只有分母为 2 的幂的分数才能有限地表示为二进制形式. 由于 0.1 (1 / 10) 和 0.2 (1 / 5) 的分母不是 2 的幂,因此这些数字不能以二进制格式有限地表示。为了将它们存储为 IEEE-754 浮点数,它们必须四舍五入到尾数的可用位数——半精度为 10 位,单精度为 23 位,双精度为 52 位。根据可用的精度位数,0.1 和 0.2 的浮点近似值可能比相应的十进制表示略小或略大,但永远不会相等。因为这个事实,永远不会有 0.1+0.2 == 0.3。

    一、NaN和Infinity

    NaN 代表Not a Number 并且它不同于 Infinity,尽管两者通常在实数的浮点表示以及浮点运算中都作为特殊情况处理。NaN 是一个特殊的值,它是唯一一个不等于自身的值,来看看下面的代码理解一个这个值:

    const num = 9 + NaN;console.log(num); // NaNconsole.log(NaN == NaN); // falseconsole.log(NaN === NaN); // falseconsole.log(Object.is(NaN, NaN)); // trueconsole.log(isNaN(NaN)); // trueconsole.log(isNaN("devpoint")); // trueconsole.log(Number.isNaN(NaN)); // trueconsole.log(Number.isNaN("devpoint")); // falseconsole.log(Number.isNaN(+"devpoint")); // true

    Infinity 是 JavaScript 中的一个特殊值,表示数学无穷大和溢出值,数字太大以至于“溢出”缓冲区并导致 Infinity。它是计算创建超出 JavaScript 中特殊最大值的数字的结果,该值约为1.79e+308 或 2¹⁰²⁴,即 JavaScript 中可以存储为数字原始类型的最大值。

    注意 :Infinity,-Infinity 和 NaN 是 JavaScript 中唯一的“无限”(非有限)数字。

    二、常用方法

    在程序中处理数字是一个常见的需求,例如序号、费用、温度等等。下面通过代码展示一些常用的与 Number 有关的方法。

    1.安全数字

    安全数字是一个数字,其值保证可以正常显示。例如,如果有一个变量值为 900719925474099194 ,那么它是否安全?

    下面来看 JavaScript 中安全数字的范围是多少?如何验证?

    • Number.MIN_SAFE_INTEGER:-9007199254740991

    • Number.MAX_SAFE_INTEGER:9007199254740991

    • Number.MAX_VALUE:1.7976931348623157e+308

    • Number.MIN_VALUE:`5e-324

    const test = 900719925474099194;console.log(Number.isSafeInteger(test)); // falseconsole.log(Number.isSafeInteger(9007199254740991)); // true

    2.整数判断

    JavaScript 中对于数字不区分整数、小数等类型,统称为 Number 类型。从下面的代码结果可以想到判断整数的方法:

    console.log(Number.isInteger(9)); // trueconsole.log(Number.isInteger(9 / 2)); // falseconsole.log(Number.isInteger(9.6)); // falseconsole.log(9 % 1 === 0); // trueconsole.log(9.1 % 1 === 0); // falseconst checkInteger = (num) => (num | 0) === num;console.log(checkInteger(9)); // trueconsole.log(checkInteger(9.1)); // falseconsole.log(checkInteger("9.0")); // falseconsole.log(checkInteger("")); // false

    3.数字格式判断

    下面的代码片段将展示如何检查一个值或变量是否包含一个数字(整数、浮点数等)。

    function isNumber(n) {    return !isNaN(parseFloat(n)) && isFinite(n);}console.log(isNumber(100)); // trueconsole.log(isNumber(3.14)); // trueconsole.log(isNumber("3.14")); // trueconsole.log(isNumber("a3.14")); // falseconsole.log(isNumber("JavaScript")); // false

    4.四舍五入

    JavaScript 中,对数值进行四舍五入操作有很多的方式,下面来一一总结一下。

    向上取整:

    向上取整使用 Math.ceil(),返回大于或等于 x ,并且与之最接近的整数。

    console.log(Math.ceil(9.005)); // 10console.log(Math.ceil(9.999)); // 10

    四舍五入:

    Math.round() 是对一个浮点数进行四舍五入,并保留整数位。语法如下:

    Math.round(x)

    x :需要处理的数值

    返回值,返回给定数字的四舍五入后的值。

    console.log(Math.round(9.005)); // 9console.log(Math.round(9.51)); // 10console.log(Math.round(9.49)); // 9console.log(Math.round(9.999)); // 10

    固定精度:

    .toFixed()Number 原型上实现的一个方法,其作用是对一个浮点数进行四舍五入并保留固定小数位。语法如下:

    numObj.toFixed(digits)

    digits:小数点后数字的个数;介于 0 到 20 (包括)之间,实现环境可能支持更大范围。如果忽略该参数,则默认为 0。
    返回值,返回使用定点表示法表示给定数字的字符串

    const pi = 3.14159265359;console.log(pi.toFixed(2)); // 3.14console.log(pi.toFixed(3)); // 3.142

    固定长度:

    .toPrecison() 也是 Number 原型上实现的一个处理浮点数的方法,和 toFixed 不同的是,它是对一个浮点数进行四舍五入并保留固定长度的有效数字,包括整数部分。语法如下:

    numObj.toPrecision(precision)

    precision:可选,一个用来指定有效数个数的整数。
    返回值,以定点表示法或指数表示法表示的一个数值对象的字符串表示,四舍五入到 precision 参数指定的显示数字位数。

    const pi = 3.14159265359;console.log(pi.toPrecision(3)); // 3.14console.log(pi.toPrecision(4)); // 3.142

    向下取整:

    Math.floor() 返回小于或等于一个给定数字的最大整数。

    Math.floor(x)

    x:一个数字。

    返回值,一个表示小于或等于指定数字的最大整数的数字。

    console.log(Math.floor(9.005)); // 9console.log(Math.floor(9.51)); // 9console.log(Math.floor(9.49)); // 9console.log(Math.floor(9.999)); // 9

    5.生成随机数

    通过Math.random() 返回 0-1 之间的随机数的原理,结果乘以最大数并四舍五入即可获得一个介于 0 和 max 之间的数字。

    const randomNumber = (max) => Math.round(Math.random() * max);console.log(randomNumber(100));

    进一步完善上面的方法以可以获取指定最小和最大范围的随机数。

    const randomNumber = (min, max) =>    Math.round(Math.random() * (max - min) + min);    console.log(randomNumber(51, 100));

    数学函数 Math 是一个内置对象,它拥有一些数学常数属性和数学函数方法,Math 不是一个函数对象,Math 用于 Number 类型,但它不支持 BigInt。

    读到这里,这篇“JavaScript数据结构Number实例分析”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网精选频道。

    --结束END--

    本文标题: JavaScript数据结构Number实例分析

    本文链接: https://www.lsjlt.com/news/322865.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    本篇文章演示代码以及资料文档资料下载

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档
    猜你喜欢
    • JavaScript数据结构Number实例分析
      本文小编为大家详细介绍“JavaScript数据结构Number实例分析”,内容详细,步骤清晰,细节处理妥当,希望这篇“JavaScript数据结构Number实例分析”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧...
      99+
      2023-06-29
    • JavaScript数据结构与栈实例分析
      今天小编给大家分享一下JavaScript数据结构与栈实例分析的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们...
      99+
      2022-10-19
    • JavaScript数据结构与算法之栈实例分析
      这篇文章主要介绍了JavaScript数据结构与算法之栈实例分析的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇JavaScript数据结构与算法之栈实例分析文章都会有所收获,下面我们一起来看看吧。1.认识栈栈:...
      99+
      2023-07-02
    • JavaScript数据结构中串的示例分析
      这篇文章将为大家详细讲解有关JavaScript数据结构中串的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。具体如下:类似于线性表的顺序存储结构,用一组地址连续的...
      99+
      2022-10-19
    • JavaScript数据结构Number
      目录前言:一、NaN和Infinity二、常用方法1.安全数字2.整数判断3.数字格式判断4.四舍五入5.生成随机数三、总结前言: Number 是JavaScript的基本数据结构...
      99+
      2022-11-13
    • JavaScript数值number实例分析
      这篇文章主要介绍“JavaScript数值number实例分析”,在日常操作中,相信很多人在JavaScript数值number实例分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大...
      99+
      2022-10-19
    • JavaScript数据结构之链表的示例分析
      这篇文章主要为大家展示了“JavaScript数据结构之链表的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JavaScript数据结构之链表的示例分析...
      99+
      2022-10-19
    • Python数据结构的栈实例分析
      这篇文章主要介绍“Python数据结构的栈实例分析”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python数据结构的栈实例分析”文章能帮助大家解决问题。1. 栈的基本概念1.1 栈的基本概念栈 (...
      99+
      2023-06-29
    • JavaScript中的数据类型Number实例分析
      这篇“JavaScript中的数据类型Number实例分析”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“JavaScript...
      99+
      2023-06-30
    • 基于C++的数据结构实例分析
      本篇内容介绍了“基于C++的数据结构实例分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!数据结构通常情况下,精心选择的数据结构可以带来更高...
      99+
      2023-07-02
    • Java数据结构之AVL树实例分析
      这篇文章主要介绍“Java数据结构之AVL树实例分析”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Java数据结构之AVL树实例分析”文章能帮助大家解决问题。AVL树的引入搜索二叉树有着极高的搜索效...
      99+
      2023-06-30
    • Python Pandas中的数据结构实例分析
      今天小编给大家分享一下Python Pandas中的数据结构实例分析的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。...
      99+
      2023-07-02
    • Redis数据结构类型实例代码分析
      这篇“Redis数据结构类型实例代码分析”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Redis数据结构类型实例代码分析”文...
      99+
      2023-07-05
    • C++数据结构模板进阶实例分析
      本文小编为大家详细介绍“C++数据结构模板进阶实例分析”,内容详细,步骤清晰,细节处理妥当,希望这篇“C++数据结构模板进阶实例分析”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。非类型模板参数模板参数分类类型形参...
      99+
      2023-06-29
    • Python Pandas数据结构的示例分析
      这篇文章将为大家详细讲解有关Python Pandas数据结构的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1 Pandas介绍2008年WesMcKinney开发出的库专门用于数据挖...
      99+
      2023-06-29
    • python数据结构堆的示例分析
      小编给大家分享一下python数据结构堆的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!1、说明堆是用数据结构来实现的一种算法:树,数组均可。堆本身是一棵完全二叉树。2、特点最大堆:所有父节点的值大于子节点的值最小...
      99+
      2023-06-15
    • Java中数据结构的示例分析
      这篇文章将为大家详细讲解有关Java中数据结构的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1.1.1.       增量内存分配 ArrayList 、 Hash...
      99+
      2023-06-03
    • JavaScript之树结构的示例分析
      这篇文章主要介绍了JavaScript之树结构的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。二叉树--概念--二叉树是一种树形结构...
      99+
      2022-10-19
    • PHP数据结构之图存储结构的示例分析
      这篇文章主要介绍PHP数据结构之图存储结构的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!图的存储结构图的概念介绍得差不多了,大家可以消化消化再继续学习后面的内容。如果没有什么问题的话,我们就继续学习接下来的...
      99+
      2023-06-20
    • Python高级数据结构与算法实例分析
      本文小编为大家详细介绍“Python高级数据结构与算法实例分析”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python高级数据结构与算法实例分析”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一、简介我们将从以...
      99+
      2023-07-05
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作