1,Number.EPSILON,表示js的最小精度
2,类似于浮点数Bug,就是看如果两个数的运算结果小于最小精度,说明这两个数相等
// Number.EPSILON,表示js的最小精度
//类似于浮点数Bug,就是看如果两个数的运算结果小于最小精度,说明这两个数相等
//Math.abs(e),表示返回一个数的绝对值,参数必须是数值
function add(a,b){
if(Math.abs(a-b)<Number.EPSILON){
return true
}else{
return false
}
}
console.log(add(0.1+0.03,0.13))//true
//0b,代表二进制
let b = 0b001
//0o,代表八进制
let c = 0o222
let d = 88
//0x,代表十六进制
let e = 0x222
console.log(b,c,d,e)
Number.isNaN
console.log(Number.isFinite(100))//true
console.log(Number.isFinite(100/0))//false
console.log(Number.isNaN(100))//false
console.log(Number.isNaN(100/0))//false
console.log(Number.parseFloat('2.51002三生三世'))//2.51002
console.log(Number.parseInt('2.51002三生三世'))//2
console.log(Number.isInteger('2.51002三生三世'))//false
console.log(Number.isInteger(9))//true
console.log(Math.trunc('2.51002'))//2
console.log(Math.trunc(9.8678))//9
console.log(Math.sign(-2.51002))//-1
console.log(Math.sign(9.8678))//1
console.log(Math.sign(0))//0
Object.is(a,b)
console.log(Object.is("哈哈哈","哈哈哈"))//true
console.log(Object.is(1,2))//false
//NaN与任何东西比较都是false,包括NaN
//但注意的是console.log(Object.is(NaN,NaN))//true
console.log(NaN===NaN)//false
后者会覆盖前者相同参数的值,如果没有,则使用前者的值,
const config1={
name:"张三",
size:12,
age:"第一个对象",
text:"第二个对象里面没有的"
}
const config2={
name:"李四",
size:14,
age:"第二个对象"
img:"第一个对象里面没有的"
}
console.log(Object.assign(config1,config2))
//age: "第二个对象"
//name: "李四"
//size: 14
//img: "第一个对象里面没有的"
//text: "第二个对象里面没有的"
const config1 = {
name: "张三",
size: 12,
age: "第一个对象",
text: "第二个对象里面没有的"
}
const config2 = {
name: "李四",
size: 14,
age: "第二个对象",
img: "第一个没有的"
}
Object.setPrototypeOf(config1, config2)
console.log(config1,"给前者设置原型")
//获取原型
console.log(Object.getPrototypeOf(config1))