前端基础之《ECMAScript 6(11)—数值扩展和对象方法扩展》

一、数值扩展

1、Number.EPSILON

Number.EPSILON是JavaScript表示的最小精度,EPSILON属性的值接近于2.22E-16(2.22乘以10的负16次方)
比如:比较两个数谁大谁小,如果两个数的差值小于Number.EPSILON,那么认为这两个数相等的。
用在浮点数运算上面。

	function equal(a, b){
        if(Math.abs(a-b) < Number.EPSILON){
            return true;
        }else{
            return false;
        }
    }

    console.log(0.1 + 0.2 === 0.3);
    console.log(equal(0.1 + 0.2, 0.3));

2、二进制、八进制、十六进制

二进制0b开头,八进制0o开头,十六进制0x开头。

    let b = 0b1010;
    let o = 0o777;
    let x = 0xff;

    console.log(b);
    console.log(o);
    console.log(x);

3、Number.isFinite

检测一个数值是否为有限数。

    console.log(Number.isFinite(100));
    console.log(Number.isFinite(100/0));
    console.log(Number.isFinite(Infinity));  //无限数

4、Number.isNaN

检测一个数值是否为NaN。

   console.log(Number.isNaN(123));  //false

5、Number.parseInt和Number.parseFloat

字符串转数值。会截断。

   console.log(Number.parseInt('5211314love'));
   console.log(Number.parseFloat('3.1415926神奇'));

6、Number.isInteger

判断一个数是否为整数。

    console.log(Number.isInteger(5));
    console.log(Number.isInteger(2.5));

7、Math.trunc

将数字的小数部分抹掉。

    console.log(Math.trunc(3.5));

8、Math.sign

判断一个数到底为正数、负数、还是零。

    console.log(Math.sign(100));
    console.log(Math.sign(0));
    console.log(Math.sign(-20000));

二、对象方法扩展

1、Object.is

判断两个值是否完全相等。功能约等于【===】符号。

    console.log(Object.is(120, 120));
    console.log(Object.is(120, 121));

2、Object.assign

对象的合并。如果属性重名则覆盖,如果没有则保留原属性。

    const config1 = {
        host: 'localhost',
        port: 3306,
        name: 'root',
        pass: 'root',
        test: 'test'
    };

    const config2 = {
        host: 'http://a.com',
        port: 33060,
        name: 'aaa',
        pass: 'aaa',
        test2: 'test2'
    }

    //用后面那个覆盖前面那个
    console.log(Object.assign(config1, config2));

3、Object.setPrototypeOf和Object.getPrototypeOf

Object.setPrototypeOf设置原型对象。

    const school = {
        name: 'xxx三中'
    }

    const cities = {
        xiaoqu: ['北京','上海','深圳']
    }

    //将school的原型对象设置为cities
    Object.setPrototypeOf(school, cities);

    console.log(school);

school对象的原型对象是cities(数组),cities对象的原型对象是Object。

建议用Object.create()方法设置原型对象。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值