JavaScript中的数字基础知识
- JavaScript只有一种数字类型,例如5和5.12是相同的类型。
- JS使用“双精度64位格式IEEE 754(https://en.wikipedia.org/wiki/Double-precision_floating-point_format)”标准
这是什么意思?所有JavaScript数字都存储为双浮点数。 JS会让你认为你的var x = 1是一个整数,但实际上它是一个浮点数并且等于1.0。
代码中的数字创建和基础知识
重要指南
- 所有数字都是浮点数
- 所有数字都是相同的类型,'number'
- JS与任何其他语言一样,受限于它可以表示的数字大小以及它的准确程度
常用方法
“Safe”Numbers
“Safe”Numbers 是一个数字,其值保证是您所说的。例如,如果我们尝试在我们的代码中使用900719925474099164,它将变为900719925474099200这是因为它超出了安全数字范围。
我们如何看待“Safe Numbers”的范围是什么?
使用Number.isSafeInteger,Number.MIN_SAFE_INTEGER和Number.MAX_SAFE_INTEGER
如何确定数字是否为整数?
JS中的每个数字毕竟都是相同的类型......
如何更改小数位数?
转换为指数形式
也称为科学记数法
全局数字函数与Number.method
您可能已经注意到有像parseInt这样的全局函数但我只显示了Number.parseInt()
这是因为JS正试图摆脱全局功能并使用模块。一些新的模块方法被更新,而旧的全局变量没有。即isNan()与Number.isNan()不同。
使用大数字
转换为另一个数字系统
文字数字的方法
您可能已经尝试在控制台或任何地方的数字文字上使用方法并出现错误,例如23.toString(2)//syntax error,这是因为如前面在“Numbers Creation Basics”部分23中提到的是有效数字,0是可选的。
这意味着当你做23.toString(2)时,JS认为它只是一个数字。
解决方案:将你的文字包在括号中(23).toString(2)//“10111”或做一些非常奇怪的事...... 23..toString(2),但请不要这样做
检查NaN
NaN是"有毒的" - 这意味着它会将它触及的任何东西变成NaN它是唯一不等于它的值,我们可以通过做 x!==x 这样的事情来利用它,如果它返回true那么它是NaN