es6 对象新增的api

es6 对象新增的api

一.Object.is():在用法上和严格相等(===)大多数情况下一样,但对于NaN、0、-0、+0的判断不一样

console.log(1 === 1); //true
console.log(Object.is(1,1));//true

console.log(-0 === +0); //true
console.log(Object.is(-0,+0));//false

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

二.Object.assign()用来合并对象
参数1:目标对象 参数2:需要被合并的对象

var name = {"name":"波波"}
	var age = {"age":18}
	var sex = {"sex":"男"}
	
 	var obj = Object.assign(name ,age ,sex)
	console.log(obj );//{"name":"波波", "age":18,"sex":"男"}
																			
	var obj1 = Object.assign(name1 ,age ,sex1)
	console.log(obj1);//{"age":18}

	console.log(obj1 === age); //true

注意点:
1.返回值是传入的第一个目标对象,会把所有的对象合并上去的时候 再返回
2.第一个参数必须是对象 如果不是对象 就会把他转换成对象

typeof Object.assign(2) // "object"

3.如果是undefined 或者null 没办法转换成对象那么就会报错

Object.assign(undefined) // 报错
		Object.assign(null) // 报错

4.如果在需要合并的多个对象里面 有相同的属性 那么后面的属性就会对前面的进行覆盖

var name = {"name":"小鱼"}
		var age = {"name":"苗苗""age" : 17}
		var sex = {"age":16,"sex" :}

		 var obj= Object.assign(name ,age ,gender);
 	    console.log(obj) //{name:"苗苗",age:16 ,sex:"女"}

5.如果undefined和null不是第一个参数 那么就不会报错 返回原值的第一个对象

var obj = Object.assign(name, undefined);
        	//var obj = Object.assign(name, null);
        	//var obj = Object.assign(name, {});
		console.log(obj) //{"name":"小鱼"} 
  1. assign方法是浅拷贝 不是深拷贝
 var objAssign = Object.assign({}, age);
        	 console.log(objAssign === age);

        	 var a = {
        	     b : {c : 3}
        	 }

        	 var s = Object.assign({}, a);

        	 a.b.c = 9;
        	 console.log(s.b.c);
        	 console.log(a.b.c);	

三. Object,setPrototypeOf 给一个对象设置原型对象
参数1 : 目标对象 参数2 : 原型对象

var obj = {
             n1 : 15,
             n2 : 18
        }

        console.log(obj.__proto__ === Object.prototype); 
    obj.__proto__ = {
        var obj1 = {
             n3 : 56, 
            n4 : 60
        }

        var a = Object.setPrototypeOf(obj, obj1);
        console.log(a);
        console.log(a === obj);
        console.log(obj.__proto__);	

四. Object.getPrototypeOf(obj) 获取对象原型的方法 参数是需要查询的对应名称

  console.log(Object.getPrototypeOf(obj));	

五. Object.keys() 是将对象所有的属性名遍历 然后返回一个数组(如果对象是json数据返回对象的key值 如果对象是数组返回数组的下标)
六. Object.values() 是将对象所有的属性值遍历 然后返回一个数组 (如果对象是json数据返回对象的value值 如果对象是数组返回数组的值)

var obj1 = {
                   name : "xxx",
                   age : 18,
            	}
   				var obj2 = ['a','b','c']

            console.log(Object.keys(obj1));	//["name", "age"]
            console.log(Object.keys(obj2));	//["0", "1", "2"]

七.Array.from() 方法从一个类似数组或可迭代对象中创建一个新的数组实例。通俗来说就是把一个不是数组的东西变成数组

ar a = {
		0:'000',
	  	1:'111',
	  	2:'222'
	}
	a = Array.from(a)
	 console.log(a) // ["000","111","222"]

八.Array.prototype.fill() 方法用一个固定值填充一个数组中从起始索引到终止索引内的全部元素。不包括终止索引。

	const array1 = [1, 2, 3, 4];
	console.log(array1.fill(0, 2, 4));//  [1, 2, 0, 0]
	console.log(array1.fill(5, 1));// [1, 5, 5, 5]
	console.log(array1.fill(6));// [6, 6, 6, 6]

九.copyWithin() 方法浅复制数组的一部分到同一数组中的另一个位置,并返回它,不会改变原数组的长度。

const array1 = ['a', 'b', 'c', 'd', 'e'];
console.log(array1.copyWithin(0, 3, 4));// : Array ["d", "b", "c", "d", "e"]
console.log(array1.copyWithin(1, 3));//  Array ["d", "d", "e", "d", "e"]

十.Array.prototype.find
find()方法会返回满足条件的第一个元素,如果没有,则返回undefined

var arr = [1, 2, 3, 4, 5];
var above5 = arr.find(ele => ele > 5);
var below5 = arr.find(ele => ele < 5);
console.log(above5); // undefined
console.log(below5); // 1
### 关于ECMAScript 6 (ES6) API文档和教程 #### 官方资源 官方提供的最权威的API文档通常由TC39委员会维护,该委员会负责JavaScript及其环境的发展。对于学习者而言,《ECMAScript® 2015 Language Specification》即为ES6的标准定义文件[^4]。 #### 学习材料 为了更好地理解和应用ES6的新特性和API,存在多种优质的学习资源可供选择: - **书籍**:《ECMAScript 6入门教程》,这本书籍全面介绍了ES6的各项新功能以及如何将其应用于实际项目中[^2]。 - **在线课程**: 许多平台提供专门针对ES6的教学视频和服务,如MDN Web Docs上的指南部分也包含了详细的解释与实例演示。 #### 新增方法介绍 值得注意的是,在ES6之后引入了一些非常实用的方法来操作数据结构,例如字符串对象新增加了`.includes()`这样的成员函数用于判断子串是否存在[^3];还有像`Set`, `Map`等集合类容器的支持增强了编程灵活性。 #### 编程实践建议 当涉及到具体编码时,考虑到浏览器兼容性问题或者旧版Node.js环境中可能无法直接支持最新的语法糖,可以考虑利用工具链将现代JS代码转换成向后兼容的形式存储或部署。例如通过命令 `$ traceur --script calc.es6.js --out calc.es5.js` 来实现这一目的[^1]。 此外,随着异步处理模式的进步,使用`async/await`关键字可以使原本复杂的回调地狱变得更加直观易懂[^5]。 ```javascript const makeRequest = async () => { try { let data = await getJSON(); if (data.needsAnotherRequest) { let moreData = await makeAnotherRequest(data); console.log(moreData); return moreData; } else { console.log(data); return data; } } catch(error){ console.error('Error:', error); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值