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]]