一、let关键字
1.作用
let与var相同,用于声明一个变量,
2.特点
let在块作用域内有效
不能重复声明
不会预处理,不存在提升
3.应用
循环遍历加监听
二、const 定义常量,不可以去修改
三、变量的解构赋值
let obj={username:'koke',age:30}
let {username,age}=obj
输出结果koke 30
let arr=[1,3,5,true,'123']
let [,,a,b]=arr
输出结果 5 true
function foo({username,age}{ {username,age}=obj
console.log(username,age)
})
四、模板字符串
`我的名字叫${obj.username}` 必须是反引号
五、对象的简写方法
相同的键名和键值可以进行省略
可以省略函数的:function
六、箭头函数
当箭头函数的只有一条语句或者表达式时{}可以省略。
let fun= ()=>console.log("我是箭头函数")
fun()
例如
如果不加上{}的话,会自动返回语句执行的结果或者是表达式的结果。如果带上{}的话,不会自动进行console
let fun=(x,y)=>x+y
fun(25,36)
或者
let fun=(x,y)=>{x+y}
console.log(fun(25,36))
他们的结果是一样的,他们是等价的
函数体不止一条语句,只要加上大括号,一定要加return
箭头函数没有自己的this,箭头函数的this不是调用的时候决定的,而是在定义的时候决定的
箭头函数的this看上层函数,如果上层函数有指定的this的话,就是上层函数的this
箭头函数的this如果没有上层函数的话,指的就是windows,如果箭头函数的上层还是一个箭头函数,那么也指向windows
七、三点运算符
...用来取代arguments,但比arguments灵活。因为arguments是伪元素,他不能进行遍历
三点运算符可以取到数组里面的各个值
例如
let obj=[1,6]
let obj1=[2,3,4,5]
let obj2=[1,...obj1,6]
输出来为[1,2,3,4,5,6]
console.log(obj2)
输出为1 2 3 4 5 6
八、形参默认值
function(x=0,y=0){
this.x=x;
this.y=y
}
这就代表形参默认值
九、promise对象
promise通常是一个异步操作。他可以解决层层环绕的回调函数。他执行的话是竖直的下来的。
promise是一个构造函数
promise先创造ajax请求,再弄个定时器
let promise=new Promise((resolve,reject)=>{
console.log('111')
setTimeout(()=>{
resolve() 执行正确后,修改promise状态为fullfilled:
reject() 执行错误后,修改promise状态为rejected失败状态
console.log('333')
},2000)
})
console.log('222')
调用promise方法
promise会有两个执行函数的方法
promise
.then((res)=>{
resolve(res) //成功执行的方法
},err=>{
reject(err) //失败执行的方法
})
reslove函数表示状态从‘未完成’变成‘成功’
reject函数表示状态从‘未完成’变成‘失败’