JavaScript 精粹:Number 与 Math

JavaScript 精粹:Number 与 Math

这是 JavaScript 精粹的系列篇,涵盖了 JavaScript 中最常用和最重要的方法,以及其它一些基础知识。在这篇文章中,我们将讨论 NumberMath

前置知识

建议大家了解类型,只需要一点数学知识。

JavaScript Essentials: Types & Data Structures

JavaScript 中的数字基础

这是什么意思? 所有JavaScript 数字都存储为双浮点数。 JS会欺骗你,让你认为 var x = 1 是一个整数,但实际上它是一个浮点数并且等于 1.0

如果你这方面感兴趣,以下一些链接供你参考:

本文的重点是 Number 对象的方法。

https://medium.com/dailyjs/ja…

数字创建和基本的代码

图片描述

重要指南

  • 所有数字都是浮点数
  • 所有的数字都是相同的类型,’number
  • JS与任何其他语言一样,受限于它可以表示的数字大小以及它的准确程度。

常用的方法

“安全” 的数字

一个 “安全” 的数字是一个值保证为你所说的值的数字。例如,如果试图在代码中使用900719925474099164,它就会变成 900719925474099200,这是因为它超出了安全数字范围。

我们怎么知道安全数字的范围是多少?

safe numbers

如何确定一个数字是否是整数?

Number.isInteger

如何更改小数位数?

Number.toFixed

Number.toPrecision

转换成指数形式

也被称为科学记数法。

Number.toExponential

全局 Number 方法 与 Number.method 比较

你可能已经注意到有像 parseInt 这样的全局函数,但是这里只用 Number.parseInt()

这是因为 JS 试图摆脱全局函数而使用模块。一些新的模块方法被更新,而旧的全局方法没有更新。 比如 isNan() 不同于 Number.isNan()

使用大数字

警告:下面提到的 vanilla JS 方法目前在这个的时间段内不可用。 (可以在 Chrome控制台中尝试)在此处 查看提案。

图片描述

在BigInt 可用之前,请使用库 MikeMcl/bignumber.js

转换为另一个数字系统

toString, parseInt

数字使用字符串中的方法

你可能已经尝试在控制台或任何地方上数字使用字符串的方法如 23.toString(2) // syntax error这是因为如前面“数字创建基础”中提到的 23.0 是可选的。

这意味着当你做 23.tostring(2), JS 认为它只是一个数字。它应该足够聪明,知道正在调用一个方法,但是好吧

解决方案:将数字包在括号中 (23).toString(2) //“10111” 或做一些非常奇怪的事…… 23..toString(2) 但请不要这样做 ?

NaN 是 Number 类型

NaN 存在于 Number 对象上,但是被定义为某些数学运算的结果,这些运算导致无法将数值量化为数字。 或者换句话说,它的命名很差, “无效数字”或类似数字情况会更好。

检查 NaN

NaN 是有毒的,意思是它会把它接触到的任何东西变成 请输入代码NaN 。它是唯一不等于它本身的值,我们可以利用它来做一些像 x !== x 的事情,如果它返回 true,那么它就是 NaN

Object.is, Number.isNaN, isNaN

四舍五入一个数字的方法

floor, ceil, round, toFixed, toPrecision

指数

pow

生成随机数

Math.random

Math 方法

在这里只包含了一些 Math 方法,但是有很多方法,请查看文档。我没有把它们全部包括在内,因为它们不言自明,并且只在你处理一个数字很多且重要的项目时才会经常使用。

实践

原文:

https://codeburst.io/javascri…

你的点赞是我持续分享好东西的动力,欢迎点赞!

一个笨笨的码农,我的世界只能终身学习!

更多内容请关注公众号《大迁世界》

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/101090.html原文链接:https://javaforall.net

(0)
上一篇 2021年7月1日 上午11:00
下一篇 2021年7月1日 下午12:00


相关推荐

  • 史上最全的IDEA快捷键总结

    史上最全的IDEA快捷键总结现在Idea成了主流开发工具,这篇博客对其使用的快捷键做了总结,希望对大家的开发工作有所帮助。

    2022年4月29日
    78
  • SDN、NFV学习与理解「建议收藏」

    SDN、NFV学习与理解「建议收藏」这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML图表FLowchart流程图导出与导入导出导入欢迎使用Ma…

    2025年10月15日
    6
  • Java线程池参数分析「建议收藏」

    Java线程池参数分析「建议收藏」线程池组成创建线程池创建线程池通过Executors的工厂方法来创建线程池实例。实际上Executors创建的线程池实例最终都是通过实例化配置不同参数的ThreadPoolExecutor对象。 publicstaticExecutorServicenewFixedThreadPool(intnThreads){returnnewThreadPoolEx…

    2022年6月3日
    37
  • 疯狂的OpenClaw:Token放量、资本热捧,大厂卡位战已打响!风险不容忽视

    疯狂的OpenClaw:Token放量、资本热捧,大厂卡位战已打响!风险不容忽视

    2026年3月12日
    1
  • Java中int转String 和 String转int 各方法效率对比

    Java中int转String 和 String转int 各方法效率对比一 int 转 String 有三种方式 1 num 2 String valueOf num 3 Integer toString num int Stringintnum 1 num longstart System currentTimeM 得到开始运行时系统时间 for inti

    2026年3月26日
    2
  • leetcode 通配符匹配_匹配任意一个字符的通配符是

    leetcode 通配符匹配_匹配任意一个字符的通配符是给定一个字符串 (s) 和一个字符模式 § ,实现一个支持 ‘?’ 和 ‘*’ 的通配符匹配。‘?’ 可以匹配任何单个字符。‘*’ 可以匹配任意字符串(包括空字符串)。两个字符串完全匹配才算匹配成功。说明:s 可能为空,且只包含从 a-z 的小写字母。p 可能为空,且只包含从 a-z 的小写字母,以及字符 ? 和 *。示例 1:输入:s = “aa”p = “a”输出: false解释: “a” 无法匹配 “aa” 整个字符串。示例 2:输入:s = “aa”p = “*

    2022年8月9日
    9

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号