6.1、数值的扩展


        /*
            es6 提供了二进制和八进制数值的新写法,分别用前缀 0b (或 0B) 和 0o (或 0O) 表示。

            从 es5 开始,在严格模式中,八进制数值就不再允许使用前缀 0 表示, es6 进一步明确,要使用前缀 0o 表示。
        */
        console.log(0b111110111 === 503)  //true
        console.log(0o767 === 503)        //true





        /*
            一、 Number.isFinite()、Number.isNaN()

            es6 在Number 对象上新提供了 Number.isFinite()、Number.isNaN() 两个方法。

            Number.isFinite() 用来检查一个数值是否为有限的(finite)  返回布尔值

            Number.isNaN() 用来检查一个值是否为 NaN  返回布尔值
        */


        console.log(Number.isFinite(15))          //true   有限
        console.log(Number.isFinite(0.8))         //true   有限
        console.log(Number.isFinite(NaN))         //false  无限
        console.log(Number.isFinite(Infinity))    //false  无限
        console.log(Number.isFinite(-Infinity))   //false  无限
        console.log(Number.isFinite('string'))    //false  无限
        console.log(Number.isFinite(true))        //false  无限

        // es5 可以通过下面的代码的部署 Number.isFinite 方法

        (function (global) {
            var global_isFinite = global.isFinite

            Object.defineProperty(Number, 'isFinite', {
                value:function isFinite(value){
                    return typeof value === 'number' && global_isFinite(value)
                },
                configurable:true,   // 可配置
                enumerable:false,    // 可枚举
                writable:true        // 可写
            })
        })(this)



        console.log(Number.isNaN(NaN))        //true  是NaN
        console.log(Number.isNaN('string'))   //false 不是NaN
        console.log(Number.isNaN(true))       //false 不是NaN

        // es5 可以通过下面的代码部署 Number.isNaN 方法

        (function (global) {
            var global_isNaN = global.isNaN

            Object.defineProperty(Number, 'isNaN', {
                value:function isNaN(value){
                    return typeof value === 'number' && global_isNaN(value)
                },
                configurable:true,
                enumerable:true,
                writable:true
            })
        })(this)

 

        /*
            这两个新方法与传统的全局方法 isFinite() 和 isNaN() 的区别在于:
            传统方法先调用 Number() 将非数值转为数值,再进行判断,
            而新方法只对数值有效,对于非数值一律返回false。Number.isNaN() 只有对于NaN才返回true,非true一律返回false
        */







        /*
            二、Number.parseInt()、Number.parseFloat()

            es6 将全局方法 parseInt() 和 parseFloat() 移植到了 Number 对象上面,行为完全保持不变。
        */


        /*
            三、Number.isInteger()

            Number.isInteger() 用来判断一个值是否为整数。需要注意的是,在 javascript 内部,整数和浮点数是同样的储存方法,所以 3 和 3.0 被视为同一个值
        */


        /*
            四、Number.ERSILON

            es6 在Number对象上面新增一个极小的常量---- Number.ERSILON
        */


        /*
            五、安全整数和 Number.isSafeInteger()

            javascript 能够准确表示的整数范围在 -2 的 53 次方 到 2 的 53 次方 之间,超过这个范围就无法精确表示
        */
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值