目录
3、Object.assign(obj1,obj2,obj3)
一、对象的新增特性
1、属性方法的简洁表示
let name = "hell"; let age = 20; //ES5 var obj1 = { name:name, age:age, run:function() { console.log("跑!") } } //ES6 var obj2 = { name, age, run() { console.log("跑!") } }
2、Object.is()
作用:相当于全等但是有区别
console.log(Object.is(NaN,NaN)); console.log(NaN === NaN); console.log(Object.is(0,-0)); console.log(0 === -0);
3、Object.assign(obj1,obj2,obj3)
作用:合并对象
注意:所有对象都会合并到obj1,如果是相同的属性,后边对象的属性值会对前边的进行完善
4、Object.keys(obj)
作用:将obj的key值返回一个纯数组
let obj = { a:1, b:2, c:3, d:4 } console.log(Object.keys(obj));
5、Object.value(obj)
作用:将obj的value值返回一个纯数组
let obj = { a:1, b:2, c:3, d:4 } console.log(Object.values(obj));
6、Object.entries(obj)
作用:返回一个二维数组,每一个小数组都是一对[key,value]
let obj = { a:1, b:2, c:3, d:4 } console.log(Object.entries(obj));
二、SET数据结构
1、特点
一种新的数据结构,类似于数组,但是成员唯一,没有索引
var set =new Set(x) \\x:数组,类数组,字符串
获取set的长度不是length而是size
可以使用for of于forEach对set进行遍历
2、方法
add(x):添加,x不是索引,而是set中具体的值
delete(x):删除,x不是索引,而是set中具体的值
has(x):验证是否存在,返回布尔值
clear():不需要参数,清除所有成员
三、Promise
1、基础
js是单线程的语言,所以很多操作都是异步操作,而异步操作多由回调函数完成
这里面就会引出一个现象“回调地狱”即回调函数中有回调函数,这种现象会导致代码的可读性降低,为了解决这个问题我们选择使用Promise作用:防止出现回调地狱,提高代码的可读性,像同步操作那样去执行异步操作
let pro = new Promise( (resolve, reject) => { if(Math.random() > 0.5){ resolve("ok"); }else{ reject("no") } }) pro.then(data => console.log(data)).catch(err => console.log(err))
注意:必须接受一个函数作为参数,俩个参数名不是自定义的,必须这么写
2、原理
一个promise对象就代表一个异步操作,通过状态去管理异步操作
状态:pending:执行中
fulfilled:完成,也就是执行了resolve()
rejected:失败,reject()执行
四、class
1、特点
必须包含在constructor
属性添加到constructor中
class的本质仍然是构造函数
this指向class的实例
2、静态方法
使用构造函数(class)调用
class Point { constructor(x, y) { //构造函数 this.x = x; this.y = y; } static toString() { //静态方法 } }
3、继承
class Ball { construcotr(x, y) { this.x = x; this.y = y; } getX() { console.log(this.x); } getY() { console.log(this.y); } } class ColorBall extends Ball { constructor(x, y, color) { super(x, y); //如果子类需要constructor,需要执行super把父类的constructor再执行一遍 this.color = color; } getX() { //如果与父类同名 那么会覆盖父级方法 console.log(this.x * 2); } getColor() { console.log(this.color); } }
ES6新增语法三(对象的新增特性、SET数据结构、Promise、class)
于 2022-10-09 19:21:38 首次发布