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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 通过openSSL生成证书「建议收藏」

    通过openSSL生成证书「建议收藏」通过openSSL命令生成证书

    2026年1月23日
    5
  • 直读光谱仪分析谱线_频谱分析仪主要有哪几种

    直读光谱仪分析谱线_频谱分析仪主要有哪几种为什么使用频谱仪?01认识频谱电磁频谱,是指按电磁波波长(或频率)连续排列的电磁波族,是一种看不见摸不着但时刻伴随我们的东西。当我们使用电磁波将一串信息发送出去时,在时域上他是一段强度不同,疏密变化的时间信号,在其中的任意时刻,你所能获取的只有他的强度;当我们换个角度,站在频域上来看时,在信号的每一个时刻,你都能看到他从时域的一个点延展成了频域的一个面,你所能获取到的信息量将成倍增加,这有助于我们从中解析出更丰富的内容。因此,电磁频谱的观测,或者说使用频谱仪,我们实际上是换一…

    2022年8月11日
    6
  • 反编译so库激活成功教程so

    反编译so库激活成功教程so所需工具1.IDA_Pro_v6.8_and_Hex-Rays_Decompiler_2.WinHex3.ARM_ASM背景:I2C通讯时报logCameraHal_Marvin:HAL-MOCKUP:HalReadI2CMem(1578):bus_num(7)orreg_addr_size(1)isinvalidateCameraHal_Marvin:…

    2022年6月16日
    40
  • c cshtml html,c# – CSHTML / Razor Views的文档

    c cshtml html,c# – CSHTML / Razor Views的文档我正在努力记录我们的显示和编辑模板(作为扩展,记录我们所有的CSHTML都是有益的).话虽如此,我从未见过任何记录CSHTMLRazorViews的方法.例如,我有这个CSHTMLEditorTemplate:MoneyPicker.cshtml@modelDecimal?@{Layout=null;}@Html.TextBox(“”,ViewData.TemplateInfo.For…

    2022年6月18日
    29
  • vs中没有vc_vs中的控件

    vs中没有vc_vs中的控件#include头文件fstream包含了ifstream、ofstream、fstream三个类,可以通过定义这三个类的对象来实现相对应的文件操作。#includeofstream//文件写操作,内存写入存储设备ifstream//文件读操作,存储设备读取到内存中fstream//读写操作,对打开的文件可进行读写操作1.打开文件函数open()public…

    2025年12月11日
    3
  • 生成initramfs_windows引导文件

    生成initramfs_windows引导文件在制作Initramfs文件系统之前,我先简单介绍下linux各文件系统。linux支持多种文件系统类型,包括ext2,ext3,vfat,jffs,ramfs,nfs等,为了对各类文件系统进行统一管理,linux引入了虚拟文件系统vfs(virtualfilesystem),为各类文件系统提供一个统一的应用编程接口。文件系统类型主要有如下:根据存储设备的硬件特性,…

    2022年8月11日
    9

发表回复

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

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