1.整数和浮点数
JavaScript 语言的底层根本没有整数
由于浮点数不是精确的值,所以涉及小数的比较和运算要特别小心。
0.1 + 0.2 === 0.3
// false
0.3 / 0.1
// 2.9999999999999996
(0.3 - 0.2) === (0.2 - 0.1)
// false
2. 数值精度
根据国际标准 IEEE 754,JavaScript 浮点数的64个二进制位,从最左边开始,是这样组成的。
- 第1位:符号位,0表示正数,1表示负数
- 第2位到第12位(共11位):指数部分
- 第13位到第64位(共52位):小数部分(即有效数字)
3. 数值范围
JavaScript 提供Number对象的MAX_VALUE和MIN_VALUE属性,返回可以表示的具体的最大值和最小值。
Number.MAX_VALUE // 1.7976931348623157e+308
Number.MIN_VALUE // 5e-324
4. NaN
(1)含义
NaN是 JavaScript 的特殊值,表示“非数字”(Not a Number),主要出现在将字符串解析成数字出错的场合。
5 - 'x' // NaN
上面代码运行时,会自动将字符串x转为数值,但是由于x不是数值,所以最后得到结果为NaN,表示它是“非数字”(NaN)。
另外,一些数学函数的运算结果会出现NaN。
5. Infinity
Infinity
有正负之分,Infinity
表示正的无穷,-Infinity
表示负的无穷。
6. 与数值相关的全局方法
parseInt方法用于将字符串转为整数。
parseInt('123') // 123
如果字符串头部有空格,空格会被自动去除。
进制转换
默认情况下,parseInt的第二个参数为10,即默认是十进制转十进制。
parseInt('1000') // 1000
// 等同于
parseInt('1000', 10) // 1000
parseFloat()
parseFloat方法用于将一个字符串转为浮点数。
parseFloat('3.14') // 3.14
isNaN()
isNaN
方法可以用来判断一个值是否为NaN
。
isNaN(NaN) // true
isNaN(123) // false
isFinite()
isFinite方法返回一个布尔值,表示某个值是否为正常的数值。
isFinite(-Infinity) // false
isFinite(NaN) // false
isFinite(-1) // true