【es6】数值的扩展
2017-06-16 16:33
204 查看
二进制 & 八进制
1.二进制前缀:0b(0B)八进制前缀:0o(0O)
2.es5严格模式不允许使用前缀0表示八进制,如:011(9)
3.二进制八进制转换为十进制使用Number
Number(‘0b111’) //7
Number.isFinite(), Number.isNaN()
1.isFinite()检查数值是否非无穷Number.isFinite(0.8); //true Number.isFinite(NaN); //false NaN, Infinity, -Infinity, 字符串, 布尔值。。均为false
2.isNaN()检查一个值是否为NaN(非数值)
Number.isNaN('aa'); //false Number.isNaN('aa'/'aa'); //true Number.isNaN(NaN/9); //true
NaN == NaN //false(NaN 与所有值都不相等,包括它自己)
3.新方法只对数值有效,非数值一律返回 false(传统全局isFinite(), isNaN()方法会先调用Number()将非数值转换为数值)
Number.parseInt(), Number.parseFloat()
1.相当于原全局方法parseInt(), parseFloat(),为了逐步减少全局性方法,使语言模块化Number.parseInt() === parseInt(); //true
Number.isInteger()
1.判断一个值是否为整数(3.0也为整数)Number.EPSILON
1.新增的一个常量,用来为浮点数计算设置误差范围,如果误差小于Number.EPSILON则认为结果正确安全整数和Number.issafeInteger()
js能精确表示的整数范围: -2^{53} < x < 2^{53} ,超过则不精确,如:Math.pow(2, 53) === Math.pow(2, 53) + 1 //true
ES6引入了
Number.MAX_SAFE_INTEGER(Math.pow(2, 53) - 1)和
Number.MIN_SAFE_INTEGER(-Number.MAX_SAFE_INTEGER)这两个常量,用来表示这个范围的上下限。
Number.issafeInteger()用来判断一个整数是否在这个范围内
实际应用中,我们不只要验证计算结果是否为安全整数,也应检验参与运算的每个值
Number.isSafeInteger(9007199254740993 - 990) // true Number.isSafeInteger(9007199254740993) // false 9007199254740993 - 990 // 返回结果 9007199254740002 // 正确答案应该是 9007199254740003
Math对象的扩展
1.Math.trunc() 去除一个数的小数部分,返回整数部分(对于非数值先将其转换为数值,空值或无法截取整数的返回NaN)
2.Math.sign() 判断一个数是正数,负数,还是0
返回值:
参数为正数,返回+1;
参数为负数,返回-1;
参数为0,返回0;
参数为-0,返回-0;
其他值,返回NaN。
3. Math.cbrt() 计算一个数的立方根
(对于非数值先将其转换为数值,空值或无法计算的返回NaN)
4. undefined 返回一个数的32位无符号整数形式有多少个前导0
Math.clz32(0) // 32 Math.clz32(0b00100000000000000000000000000000) // 2
左移运算符(<<)与Math.clz32方法直接相关。(每左移一位,clz32()值减少一)
对于小数,Math.clz32方法只考虑整数部分。
对于空值或其他类型的值,Math.clz32方法会将它们先转为数值,然后再计算。
NaN, Infinity, null, undefined, ‘foo’, [], {} 均为32
true为31
相关文章推荐
- ES6--字符串、正则、数值、数组的扩展
- js-es6-数值扩展
- ES6 数值扩展
- ES6 数值的扩展
- ES6入门——数值的扩展
- es6——数值的扩展
- ES6-数值的扩展-Number.isInteger() 和 Number.EPSILON
- ES6--数值的扩展
- 【es6】数值扩展
- es6数值扩展
- [Wondgirl]ECMAScript6(ES6)(六)数值的扩展
- ES6-数值的扩展-安全整数和 Number.isSafeInteger()
- es6数值扩展(四)
- ES6学习——新的语法:数值字面量扩展(Number Literal Extensions)
- ES6-数值的扩展-二进制和八进制表示法
- ES6 数值扩展
- ES6 学习笔记之《数值的扩展》
- es6 关于数值扩展。。。。。。。。。。。。。es6新方法
- 04、ES6 数值的扩展
- ES6数值扩展-Math对象