ECMAScript2015(6) Number
ES6 扩展了 Number 类。
二进制和八进制表示法
0b1101111000 === 888; // => true
0o1570 === 888; // => true
Number('0b1101111000') // => 888
Number('0o1570') // => 888
0b(0B) 表示二进制数, 0o(0O) 表示八进制数。二进制或八进制转十进制使用 Number()
Number 类的详细信息请 戳这里
Number 类新增方法
Number.isFinite()
Number.isFinite(Infinity); // false
Number.isFinite(NaN); // false
Number.isFinite(-Infinity); // false
Number.isFinite(0); // true
Number.isFinite(2e64); // true
Number.isFinite('0'); // false, 全局函数 isFinite('0') 会返回 true
Number.isFinite() 用于检测传入的参数是否是有穷数
Number.isFinite() 的详细信息 戳这里
Number.isInteger()
Number.isInteger(0.1); // false
Number.isInteger(1); // true
Number.isInteger(Math.PI); // false
Number.isInteger(-100000); // true
Number.isInteger(NaN); // false
Number.isInteger(0); // true
Number.isInteger("10"); // false
Number.isInteger() 方法用于检测参数是否是整数
Number.isInteger() 的详细信息 戳这里
Number.isNaN()
Number.isNaN(NaN); // true
Number.isNaN(Number.NaN); // true
Number.isNaN(0 / 0) // true
// 下面这几个如果使用全局的 isNaN() 时,会返回 true。
Number.isNaN("NaN"); // false,字符串 "NaN" 不会被隐式转换成数字 NaN。
Number.isNaN(undefined); // false
Number.isNaN({}); // false
Number.isNaN("blabla"); // false
// 下面的都返回 false
Number.isNaN(true);
Number.isNaN(null);
Number.isNaN(37);
Number.isNaN("37");
Number.isNaN("37.37");
Number.isNaN("");
Number.isNaN(" ");
Number.isNaN() 用于检测传入的值是否是 NaN
Number.isNaN() 与全局 isNaN() 的区别是 Number.isNan() 不会强制把参数转为数字
Number.isNaN() 的详细信息 戳这里
Number.isSafeInteger()
Number.isSafeInteger(3); // true
Number.isSafeInteger(Math.pow(2, 53)) // false
Number.isSafeInteger(Math.pow(2, 53) - 1) // true
Number.isSafeInteger(NaN); // false
Number.isSafeInteger(Infinity); // false
Number.isSafeInteger("3"); // false
Number.isSafeInteger(3.1); // false
Number.isSafeInteger(3.0); // true
Number.isSafeInteger() 用于检测传入的值是否是 安全整数 (处于 -(253-1) 和 253-1 之间的整数)
Number.isSafeInteger() 的详细信息 戳这里
Number.parseFloat()
Number.parseFloat() 方法可以把一个字符串解析成浮点数。该方法与全局的 parseFloat() 函数相同,并且处于 ECMAScript 6 规范中(用于全局变量的模块化)。
Number.parseFloat() 的详细信息 戳这里
Number.parseInt()
Number.parseInt() 方法可以根据给定的进制数把一个字符串解析成整数。
Number.parseInt() 的详细信息 戳这里
新增属性
Number.EPSILON
x = 0.2;
y = 0.3;
z = 0.1;
equal = (Math.abs(x - y + z) < Number.EPSILON);
Number.EPSILON 常量表示一个极小数, 可以用于表示浮点运算允许的误差范围。
Number.EPSILON 的详细信息 戳这里 也可以 戳这里
Number.MAX_SAFE_INTEGER
Number.MAX_SAFE_INTEGER // 9007199254740991
Math.pow(2, 53) - 1 // 9007199254740991
Number.MAX_SAFE_INTEGER 常量表示 JS 中的最大安全整数 (253 - 1)
Number.MAX_SAFE_INTEGER 的详细信息 戳这里 也可以 戳这里
Number.MIN_SAFE_INTEGER
Number.MIN_SAFE_INTEGER // -9007199254740991
-(Math.pow(2, 53) - 1) // -9007199254740991
Number.MIN_SAFE_INTEGER 常量表示 JS 中的最小安全整数 (-(253 - 1))
Number.MIN_SAFE_INTEGER 的详细信息 戳这里 也可以 戳这里
参考资料
许可协议:署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)
本文链接:https://tanglj.cn/2015/12/29/es6-number-extention/