一 . ECMAScript与JavaScript的关系
前者是后者的规格 后者是前者的一种实现
二.es6基本操作内容
1.let变量的特点
1).块级变量
2).不存在变量提升
3).暂时性死区(会造成原有函数的功能失效)
4).不允许重复声明
2.什么是解构赋值
从数组和对象中提取值,对变量进行赋值
3.indexof 和 includes 的区别
indexof (): 可以返回某个指定字符串的值在字符串中首次出现的位置
includes():用来判断一个数组是否包含一个指定的值,如果是返回true,如果不是返回false
4.箭头函数使用的注意事项
1).箭头函数没有自己的this对象
2).不可以用于构造函数 不能使用new命令,否则会报错
3).不可以使用arguments对象,该对象在函数体内不存在,如果要用必须用rest参数代替
4).不可以使用yield命令,不能用作generator函数
5.数组新增的两种方法
1).lis.forEach((v,k)=>{ })
2).lis.filter((v,k)=>{ })
6.Symbol与Symbol.for的区别
Symbol : 属性名属于symbol类型的都是独一无二的,可以保证不会和其他属性名发生冲突
Symbol.for : Symbol.for赋值,在声明之前如果没有就是独一无二的值,如果有就是相同值
区别:symbol.for会被登记在全局环境中供搜索,symbol不会
symbol.for不会每次调用就返回一个新的symbol值,而是会先检查给定的key是否已经存在,如果不存在才会新建一个值
7.Set 和 Map 格式的操作方法
set 类似于数组,但是成员的值都是唯一的,没有重复值
设置set属性构造函数需要用new生成 new set()
set的操作方法
add(value) 增加
delete(value) 删除
has(value) 查看
clear() 清空
size 查看长度
map的操作方式:
set( ) 添加 == set.add()
get( ) 获取
size( ) 长度
delete( ) 删除
clear( ) 清空
三 . proxy对象
proxy对象--代理器,是es6新增数据的一种拦截器,就是访问对象前必须走过proxy设置的拦截
通过构造函数生成:var proxy = new proxy({源对象},{设置拦截规则});
常用方法 get 获取规则 格式 :
get设置规则 格式 :
get(target,key){
// 参数一代表源对象
// 参数二代表指定的下标
}
set设置规则 格式 :
set(target,key,val){
// 参数一代表源对象
// 参数二代表指定下标
// 参数三代表指定的值
}
deleteProperty删除规则 格式 :
delete 删除对象中的指定属性
deleteProperty(target,key){
// 参数一代表源对象
// 参数二代表指定下标
}
ps : 需要通过proxy对象调用才会产生效果,proxy对象改变时,源对象会一起改变
四 . Reflect对象
reflect对象与proxy对象一样,都是ES6为了操作对象而提供的新API
概述 : 1) 把对象中的方法都设置到reflect中,从reflect中可以拿到语言内部的方法
2) 修改对象的返回结果,让其变的更合理,不会终止代码运行
3) 统一标准,让操作都变为函数
4) reflect与proxy对象的方法时一 一对应的,使用方便
举例 : console.log( obj.names ); //老
console.log( Reflect.get(obj,'' names '') ) //新
五 . promise对象
promise对象是异步编程的一种解决方案,比传统的解决方案— —回调函数和事件 更合理和更强大。
1 . 回调地狱
在前一个异步操作的回调函数中调用后一个一步操作,当异步操作越多,这种嵌套的层级就越复杂 ,就产生了回调地狱
2.promise生成
new Promise( function (resolve,reject ){
resolve代表成功 reject代表失败
})
.then(res=>{
成功
})
.catch(rej=>{
失败
})
3 . promise的三种状态 :pending(进行中) fulfilled(已成功) rejected(已失败)
4 . 方法 : promise.all() promise.race()
六 . iterator遍历器与for...of循环
目的 : 为所有的数据结构提供一个统一的访问机制
为对象加入iterator遍历器,可以用for...of的方式遍历对象
ES6规定,默认的iterator接口部署在数据结构的symbol.iterator属性,或者说一个数据结构只要具有symbol.iterator属性,就可以认为是''可遍历的''
Symbol.iterator属性本身是一个函数,就是当前数据结构默认的遍历器生成函数
七 . generator函数
generator函数是ES6提供的一种异步编程解决方案,功能让函数内部停止,通过next()与yield配合,实现手动操作函数的运行
格式 :
function * hellogenerator(){
yield 'hello';
yield 'world';
return 'aaa';
}
八 . class类
基本格式 :
class point{
constructor(x,y){ //构造方法
this.x = x;
this.y = y;
}
}