数值(number):int float
特殊数值NaN,不等于任何值包括本身!
Boolean(NaN) // false
NaN === NaN // false
typeof NaN // 'number'
Js内部的值都是64位浮点数【符号位(0正1负)+指数(2-12位)+小数(13-64位)】形式存储,大于2的53次方以后,整数运算的结果开始出现错误
能够表示的数值范围为21024到2-1023(开区间)
可以用科学计数法表示数值
Math.pow(2, 1024) // Infinity:无穷
正向溢出
Math.pow(2, -1075) // 0
负向溢出
0 +0 -0相等,作分母返回值不等,
除以正零得到+Infinity,除以负零得到-Infinity,这两者是不相等的
Number.MAX_VALUE // 1.7976931348623157e+308
Number.MIN_VALUE // 5e-324
- 十进制:没有前导0的数值。
- 八进制:有前缀
0o或0O的数值,或者有前导0、且只用到0-7的八个阿拉伯数字的数值。 - 十六进制:有前缀
0x或0X的数值。 - 二进制:有前缀
0b或0B的数值。
与数值相关的全局方法:
- parseInt():将字符串转为整数;进制间转换
【遇到不能转换成数字的字符,即停止,返回转换成功的字符串;第一个都不能转换的,返回NaN】1.parseInt('8a') // 82. parseInt('1000', 2) // 8 parseInt('1000', 6) // 216 parseInt('1000', 8) // 512 - parseFloat():将字符串转为浮点数;
- isNaN():判断一个值是否位NaN;
当传入位字符串的时候,字符串、对象、数组会先转换为NaN,
空数组和只有一个数值成员的数组,返回false
isNaN('Hello') // true // 相当于 isNaN(Number('Hello')) // trueisNaN([]) // false isNaN([123]) // false isNaN(['123']) // false
使用前,先判断数据类型:function myIsNaN(value) { return typeof value === 'number' && isNaN(value); }判断NaN更可靠的方法是,利用NaN为唯一不等于自身的值的这个特点,进行判断。function myIsNaN(value) { return value !== value; } - isFinite():返回一个布尔值,表示某个值是否为正常的数值
除了Infinity、-Infinity、NaN和undefined这几个值会返回false,isFinite对于其他的数值都会返回true
你的代码量决定了你的薪资水平!
浙公网安备 33010602011771号