数值扩展
Number.EPSILON
(接近于2.2E-16) 是 JavaScript 表示的最小精度。
function equal(a,b){
if(Math.abs(a-b) < Number.EPSILON){
return true
}else{
return false
}
}
console.log(0.1 + 0.2 === 0.3) // false
console.log(equal(0.1 + 0.2, 0.3)) // true
- 二进制、八进制和十六进制
let b = 0b1010 // 二进制 = 十进制的 10
let o = 0o777 // 八进制 = 十进制的 511
let d = 100 // 十进制
let x = 0xff // 十六进制 = 十进制的 255
console.log(b) //10
console.log(o) //511
console.log(d) //100
console.log(x) //255
Number.isFinite
检测一个数值是否为一个有限数。
console.log(Number.isFinite(100)) // true
console.log(Number.isFinite(100/0)) // false
console.log(Number.isFinite(Infinity)) //false (Infinity为无穷)
Number.isNaN
检测一个数值是否为 NAN
console.log(Number.isNaN(123)) //false
Number.parseInt
和Number.parseFloat
字符串转整数
console.log(Number.parseInt('5201314love')) // 5201314
console.log(Number.parseFloat('3.1415926神奇')) //3.1415926
Number.isInteger
判断一个数是否为整数
console.log(Number.isInteger(5)) //true
console.log(Number.isInteger(2.5)) //false
Math.trunc
将数字的小数部分抹掉
console.log(Math.trunc(3.5)) // 3
Math.sign
判断一个数到底为正数、负数还是零
console.log(Math.sign(100)) // 1
console.log(Math.sign(0)) // 0
console.log(Math.sign(-200)) // -1
对象方法的扩展
Object.is
:判断两个值是否完全相等
console.log(Object.is(120,120)) // true
console.log(Object.is(120,121)) // false
Object.is()
和 ===
很像,但是也有区别
console.log(Object.is(NaN,NaN)) // true
console.log(NaN === NaN) //false
Object.assign
:对象的合并
const config1 = {
host: 'localhost',
port: 3306,
name: 'root',
pass: 'root'
}
const config2 = {
host: 'http://www.baidu.com',
port: 33060,
name: 'baidu.name',
pass: 'love'
}
// 后面的覆盖前面的. 如果前面的有后面的没有的某个,则保留前面的某个,其余的仍然覆盖.
console.log(Object.assign(config1, config2))
Object.setPrototypeOf
设置原型对象 和Object.getPrototypeOf
获取原型对象
const school = {
name: '山东大学'
}
const cities = {
xiaoqu: ['济南','威海']
}
Object.setPrototypeOf(school, cities)
console.log(school)
const school = {
name: '山东大学'
}
const cities = {
xiaoqu: ['济南','威海']
}
Object.setPrototypeOf(school, cities)
console.log(Object.getPrototypeOf(school))
不积跬步无以至千里 不积小流无以成江海