es6
- 对象扩展方法
-
is()全等比较-
Object.is(NaN,NaN)// true
-
-
assign()对象合并Object.assign(target,obj1,obj2)- 返回合并之后的新对象
-
-
Symbol- 原始数据类型,表示独一无二的值/保存的内存地址引用不同
- 最大用途:定义对象私有变量
- 无法遍历
- 获取
Object.getOwnProperty(obj)Reflect.ownKeys(obj)
-
Set/Map-
Set集合- 无重复值的有序列表
let set = new Set()-
add()添加 -
delete()删除 -
has()是否存在 -
forEach()遍历 -
set.size长度 // 将集合转换为数组 let set = new Set([1,2,3,4,6,6,6,5]) // 利用展开运算符 let arr = [...set]-
set中对象的引用无法释放 -
weakSet()可以释放- 不能传入非对象类型的参数
- 但不能遍历
- 没有
size - 没有
forEach()
-
Map-
Map类型是键值对有序的列表,键值可以是任意类型 -
set()设置键值对 -
get()获取值 -
has()是否存在 -
delete()删除 -
clear()清空 new Map([['a',1],['b',2]])weakMap()
-
-
- 数组扩展方法
-
from- 将伪数组转换为数组
- 第二个参数为回调,可以处理每一个参数。
-
of- 将任意值,初始为一个数组
Array.of([1,2],'ab',{value:'''})
-
copyWithin()[1,2,3,4,5,6].copyWithin(0,3)- [4,5,6,4,5,6]
-
find()- 找出第一个数组成员
[1,2,3].find(n => n=1)
-
findIndex()- 找出第一个数组成员索引
[1,2,3].findIndex(n => n=1)
-
entries()/keys()/values()- 返回遍历器,返回之后可以使用
for...of进行遍历 -
enteries()- 对键值对遍历
for(let [index,item] of ['a','b','c'].entries()){ // index => 0,1,2 // item => 'a','b','c' }-
next()- 类似断点一步一步的执行
-
keys()- 对键的遍历
-
values()- 对值的遍历
- 返回遍历器,返回之后可以使用
-
includes()- 查看数组中是否包含某一个元素,返回布尔值。
-
- 迭代器
iterator-
Symbol.iterator数组中迭代器方法 - 1.迭代器是一个接口,可以快捷的访问数据
- 2.迭代器用于遍历数组的指针(数据库的游标)
-
next()返回数组的遍历过程,其中done表示是否遍历结束当结果为true时,遍历结束。
-
-
Generator生成器-
Generator和普通函数有所区别- 区别在于在函数内部可以挂起执行步骤
- 调用
Generator生成器 返回带有next()生成器对象
// 使用function* 方式声明生成器 function* genteratorDemo(){ // 里面使用yield 关键字 挂起操作 console.log('start') // 挂起loading操作 yield console.log('loading') console.log('done') } // 返回生成器对象 带有迭代器效果的next()方法 let fn = genteratorDemo() // 调用next()方法 fn.next() // start & loading // 模拟请求 1秒后得到 done // 如果ajax的话可以在请求成功后调用next() // 完成Loading的加载 setTimeout(()=>fn.next(),1000)
-
es7
-
Array.prototype.includes()- 查找数组中是否存在某一个元素,返回boolean. 可以查找
NaN字段
- 查找数组中是否存在某一个元素,返回boolean. 可以查找
-
**- 求幂运算符,作为运算符补充
2 ** 2等于Match.pow(2,2)
- 求幂运算符,作为运算符补充
es8
-
async await- 异步函数
async function()-
async用于声明一个异步函数 返回值为Promise对象 -
await等待异步操作结束后,得到得返回值。
-
- 异步函数
-
Object.entries()作用:将对象得键值对,拆分成二维数组 以键为索引0 值为索引1得数组。
将一个对象中可枚举属性得键名和键值按照二位数组得形式返回
若对象是数组 则以索引作为键值返回。
Object.entries({ one: 1, two: 2 }) //[['one', 1], ['two', 2]] Object.entries([1, 2]) //[['0', 1], ['1', 2]]