目录
ES6
let关键字
作用:与var类似,用于声明一个变量
特点:在块作用域内有效,不能重复声明,不会预处理,不存在变量提升
预处理:声明var的变量但并不赋值(故可以在var的变量之前去console.log,但会报出undefined),以及提前定义好function(故可以在函数体之前去调用函数)
应用:循环遍历加监听
const关键字
作用:定义一个常量
特点:不能修改,其他特点与let相同
应用:保存不用改变的数据
变量的解构赋值
理解:从对象或数组中提取数据,并赋值给变量(多个)
对象的解构赋值:
let obj={n:'tom',a:12}
let {n,a}=obj
变量名需与对象的属性名一致
数组的解构赋值:
let [a,b]=[1,'abc']
用途:进行多个形参赋值
模板字符串
简化字符串的拼接
模板字符串必须用 `` 包含,放置变量的部分用${xxx}定义
let name='tom'
let age=12
let str=`name=${name},age=${age}`
对象的简写方式
简化对象写法:
- 省略同名的属性值(属性名与相赋值的变量名相同)
- 省略方法的function
let name='tom'
let age=12
let obj={
name,
age,
getName(){
return this.name
}
}
箭头函数
作用:定义匿名函数
基本语法:
- 没有参数时:()=>{ }
- 带一个参数时:i=>{ }
- 大于一个参数时:(i,j)=>{ }
- 若函数体不用大括号包裹,则默认返回结果
- 若函数体用大括号包裹,如果需要返回数据,需return
使用场景:多用来定义回调函数
特点:
- 简洁
- 箭头函数没有自己的this。箭头函数的this不是调用的时候决定的,而是在定义的时候处在的对象就是它的this
- 如果有外层函数,则箭头函数的this为外层函数的this。否则为window
三点运算符
rest(可变)参数:
作为函数参数,可以传入多个参数作为数组。
function fun(...values){
values.forEach(function(item,index){
console.log(item,index)
})
}
扩展运算符:
可以用来连接数组
let arr1=[1,5]
let arr2=[2,3,4]
let arr=[1,...arr2,5]
console.log(arr)
形参默认值
当不传入参数的时候默认使用形参里的默认值
function fun(x=1,y=2){
this.x=x
this.y=y
}
promise对象
promise对象代表了未来某个将要发生的事件(通常是一个异步操作)。有了promise对象就可以将异步操作以同步的流程表达出来,避免了层层嵌套的回调函数。
ES6的promise是一个构造函数,用来生成promise实例
promise有三个基本状态:pending(初始化)、fullfilled(成功)、rejected(失败)
基本步骤:
- 创建promise对象
let promise=new Promise((resolve,reject)=>{
//初始化promise状态为pending
if(异步操作成功){
resolve(data) //修改promise状态为fullfilled
}
else{
reject(err) //修改promise状态为rejected
}
})
- 调用promise的then()方法
promise.then(function(
result=>{成功时调用函数},
err=>{失败时调用函数}
))