【es6】数值扩展和对象扩展

es6

      • 数值扩展
            • Number.EPSILON
            • 二进制和八进制,十进制和十六进制
            • 检测一个数值是否为有限数
            • 检测一个数值是否为NaN
            • 字符串转整数(或浮点数)
            • 判断一个数是否为整数
            • 将数字的小数部分抹掉
            • 判断一个数是正数还是负数还是0
      • 对象扩展
            • 判断两个值是否完全相等
            • 对象的合并
            • 给对象设置原型对象

数值扩展

Number.EPSILON

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
检测一个数值是否为NaN
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
判断一个数是正数还是负数还是0
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))

【es6】数值扩展和对象扩展_第1张图片

你可能感兴趣的:(【es6~es11】专栏,es6,javascript,前端)