es6 数值扩展、对象方法扩展(es6学习笔记06)

一、es6的数值扩展

Number.EPSILON:是JavaScript表示的最小精度。(当两数之差小于它时,课认为这两个数相等)

function equal(a,b){
    
    
            if(Math.abs(a-b) < Number.EPSILON){
    
    
                return true;
            }else{
    
    
                return false;
            }
        }
        console.log(equal(0.2+0.3,0.5))

二进制和八进制

let b=0b1100;
let o=0o666;

Number.isFinite:检测一个数值是否为有限数

console.log(Number.isFinite(200))  //true
console.log(Number.isFinite(200/0));  //false
console.log(Number.isFinite(Infinity));  //false

Number.isNaN:检测一个数是否为NaN

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

Number.parseInt/Number.parseFloat:字符串转整数

console.log(Number.parseInt('5201314love'));  //5201314
console.log(Number.parseFloat('3.1415等等'));  //3.1415

Number.isInteger:判断一个数是否为整数

console.log(Number.isInteger(88));  //true
console.log(Number.isInteger(3,12));  //false

Math.trunc:将数字的小数部分抹掉

console.log(Math.trunc(2.88));  //2

Math.sign:判断一个数到底为正数负数还是零

console.log(Math.sign(20));  //1
console.log(Math.sign(0));   //0
console.log(Math.sign(-90)); //-1

二、es6的对象方法扩展

Object.is:判断两个值是否完全相等。

(类似于===,但是在NaN的判断时,结果是true)

console.log(Object.is(88,88));  //true
console.log(Object.is(NaN,NaN));  //true
console.log(NaN === NaN)  //false

Object.assign:对象的合并

第二个对象覆盖第一个,当对象里的属性同名时则覆盖,不同名时则合并。

const hong = {
    
    
            name:'红红',
            age:19,
            like:'吃饭',
            text:'打豆豆'
}

const lv = {
    
    
            name:'绿绿',
            age:20,
            like:'喝水'
}
console.log(Object.assign(hong,lv));//第二个覆盖第一个

Object.setPrototypeOf/Object.getPrototypeof:设置原型对象/获取原型对象。

object.setprototypeof把第二个参数当成一个原型赋值给第一个参数的 proto 属性。

const book = {
    
    
            name:'西游记'
}
const people = {
    
    
            renwu:['孙悟空','猪八戒','牛魔王']
}
Object.setPrototypeOf(book,people); //设置原型对象
console.log(Object.getPrototypeOf(book)); //获取原型对象
console.log(book);

输出结果:

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_48931875/article/details/113615919