1.ECMAsciopt和JavaScript之间的关系?
前者是后者的规格,后者是前者的实现.
2.let的声明特点:
1块级作用域 2.不存在变量提升 3.暂时性死区ZDT(会使原有的函数功能失效) 4.let不允许重复声明
3.字符串新增: ``魔板字符串 ...展开运算符
4.结构赋值: es6按照一定的模式,从数组和对象中提取值时,从而对变量进行赋值,就称为构造赋值
5.箭头函数使用的注意事项:
1.箭头函数不具有自己的this对象
2.箭头函数不可当做构造函数,也就是说不可对箭头函数使用new命令,否则会抛出错误
3.不可使用arguments对象,该对象不存在函数体重,如需使用,可用rest参数代替
4.不可使用yield命令,因此箭头函数不能当做generator函数
5.数组新增:
lis.forEach( (v,k)=>{} ) lis.filter.Each( (v,k)=>{} )
6.Symbol的设定,symbol与symbol for 的区别:
凡是属性名等于 symbol 类型的值时,都是独一无二的值,同时也可保证不会与其他属性名产 生命名冲突
Symbol for() 赋值,如果声明之前没有就是独一无二的值,如果有就是相同的值
区别:
symbol for会被记载在全局环境中提供搜索,symbol() 不会. 同时symbol for 不会每次调用就返回一个新的 symbol 类型的值,而是会先检查规定的key存不存在,不存在才会新建一个值
二.set与map的操作方式(背下来)
set的操作方法
add(value) 增加
delete(value) 删除
has(value) 查看
clear() 清空
size 查看长度
map的操作方式:
set( ) 添加 == set.add()
get( ) 获取
size( ) 长度
delete( ) 删除
clear( ) 清空
8.set和map 的区别
都是用来存储数据用的,但是存储的数据格式不同
set 直接存储 任意类型数据
map 存储数据的时候,必须以key,value的形式,
set 使用forEach 遍历的时候,key和value值是一样的
而map 遍历的时候,key就是存进去的对象的key,value就是存在的值
三.proxy /泼 : K 性:/ 对象
proxy(泼兴ing)---代理器, 是es6新增的对数据的一种拦截器,即访问对象数据前,必需走过proxy设置的拦截:
通过构造函数生成:(格式如下)
var proxy = new Proxy( { 源对象 }, { 设置拦截规则 } );
get获取规则: 格式:
et(target,key){
第一个代表源对象 | 第二个代表指定的下标
}
set设置规则: 格式:
Set(target,key,val){
第一个代表源对象 | 第二个代表指定的下标 | 第二个代表指定的值
}
deleteProperty 删除规则: 地雷他:泼朴体
deleteProperty(target,key){
第一个代表源对象 | 第二个代表指定的下标
}
delete 删除对象中指定属性
Ps: 1.需要通过proxy对象调用才会产生效果 | 2.poxy对象改变时,源对象会跟着一起改变
四 Reflect(瑞服赖特)
Reflect对象与Proxy对象一样,也是 ES6 为了操作对象而提供的新 API.
- 以后对象中的方法都会设置到reflect中
- 修改对象的返回结果,不会终止代码运行
- 统一标准,让操作都变为函数
- Reflect与proxy中的方法是一一对应的.使用方便
例子:
console.log( obj.names ); 老
console.log( Reflect.get(obj,"names") ) 新
五 promise(泼肉密思)对象(重点)
promise是异步编程的一种解决方案,让异步写法感觉上为同步
- 回调地狱 :在前一个异步操作的回调函数中调用后一个异步操作,当异步操作越多,这种嵌套的层级也就越复杂,就产生了回调地狱.
-
Promise状态: (三种状态)
pending(进行中) | fulfilled(已成功)| rejected(已失败)
-
new Promise( function(resolve, reject) { res代表成功 | reject代表失败 } )
.then( res=>{ 成功 } )
-
.catch( rej=>{ 失败 } )
-
方法: Promise.all() Promise.race()
六 iterator(因特瑞特儿)遍历器与 for...of
目的: 为所有的数据结构提供一个统一的访问机制
ES6 规定,默认的 Iterator 接口部署在数据结构的Symbol.iterator属性,或者说,一个数据结构只要具有Symbol.iterator属性,就可以认为是“可遍历的”
Symbol.iterator属性本身是一个函数,就是当前数据结构默认的遍历器生成函数