详解JS数值Number类型(2)
不同进制的转换
进制的转换主要用到Number的toString()方法或parseInt()方法:
- toString() 方法接受一个值为 2~36 之间的整数参数指定进制,默认为十进制,将Number转为String
- parseInt() 第二个参数接受一个值为 2~36 之间的整数参数指定进制,默认为十进制,将String转为Number
// toString转换,输入为Number,返回为String
var n = 120;
n.toString(); // "120"
n.toString(2); // "1111000"
n.toString(8); // "170"
n.toString(16); // "78"
n.toString(20); // "60"
0x11.toString(); // "17"
0b111.toString(); // "7"
0x11.toString(12);// "15"
// parseInt转换,输入为String,返回为Number
parseInt('110'); // 110
parseInt('110', 2); // 6
parseInt('110', 8); // 72
parseInt('110', 16); // 272
parseInt('110', 26); // 702
// toString和parseInt结合使用可以在两两进制之间转换
// 将 a 从36进制转为12进制
var a = 'ra'; // 36进制表示的数
parseInt(a, 36).toString(12); // "960"
数字对象 Number
Number对象是内置的数字对象,它封装了一系列Number相关的常量和方法。
var na = Number(8); // 8
na = Number('9.5'); // 9.5
na = new Number('9.3'); // Number 对象,仅可以使用原型方法
Number对象的属性:
| 属性 | 描述 |
|---|---|
| Number.MAX_VALUE | 可表示的最大值 |
| Number.MIN_VALUE | 可表示的最小值 |
| Number.NaN | 特指”非数字“ |
| Number.NEGATIVE_INFINITY | 特指“负无穷”;在溢出时返回 |
| Number.POSITIVE_INFINITY | 特指“正无穷”;在溢出时返回 |
| Number.EPSILON | 表示1和比最接近1且大于1的最小Number之间的差别 |
| Number.MIN_SAFE_INTEGER | JavaScript最小安全整数 |
| Number.MAX_SAFE_INTEGER | JavaScript最大安全整数 |
Number对象方法
Number对象方法可以使用 Number. 的形式调用,也可以使用全局调用。
| 方法 | 描述 |
|---|---|
| Number.parseFloat() | 把字符串参数解析成浮点数,左右等效于一元运算法+ |
| Number.parseInt() | 把字符串解析成特定基数对应的整型数字 |
| Number.isFinite() | 判断传递的值是否为有限数字 |
| Number.isInteger() | 判断传递的值是否为整数 |
| Number.isNaN() | 判断传递的值是否为 NaN |
| Number.isSafeInteger() | 判断传递的值是否为安全整数 |
