一、数值扩展
1. Number.EPSILON 是 JavaScript 表示的最小精度
EPSILON 属性的值接近于 2.2204460492503130808472633361816E-16
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. 二进制、八进制、十进制、十六进制
let b = 0b1010;
let o = 0o777;
let d = 100;
let x = 0xff;
console.log(b);
console.log(o);
console.log(d);
console.log(x);
3. Number.isFinite 检测一个数值是否为有限数
console.log(Number.isFinite(100));
console.log(Number.isFinite(100/0));
console.log(Number.isFinite(Infinity));//Infinity无穷
4. Number.isNaN 检测一个数值是否为 NaN
console.log(Number.isNaN(123));
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(NaN, NaN));
console.log(NaN === NaN);
2. Object.assign 对象的合并
const config1 = {
host: 'localhost',
port: 3306,
name: 'root',
pass: 'root',
test: 'test'
};
const config2 = {
host: 'http://atguigu.com',
port: 33060,
name: 'atguigu.com',
pass: 'iloveyou',
test2: 'test2'
}
console.log(Object.assign(config1, config2));//重名的后面的会把前面的覆盖掉
3. Object.setPrototypeOf 设置原型对象,Object.getPrototypeof 获取原型对象
const school = {
name: '尚硅谷'
}
const cities = {
xiaoqu: ['北京','上海','深圳']
}
Object.setPrototypeOf(school, cities);
console.log(Object.getPrototypeOf(school));
console.log(school);