一些小知识点
- 2019 年 10 月 5 日
- 筆記
var、let、const
var
变量声明提升,函数声明也会被提升,并且优先于变量提升。
使用var声明的变量会被提升到作用域的顶部
let、const
全局作用域下,let和const声明变量,变量并不会挂载到window上。存在暂时性死区。
- 函数提升优于变量提升,函数提升会把整个函数挪到作用域顶部,变量提升只会把声明挪到作用域顶部
- var存在提升,可以在声明前使用。let 、const存在暂时性死区,不能在声明前使用
- var 在全局作用域下声明变量会导致变量挂载在window上
- let和const作用基本相同,但是const声明的变量不能再次赋值
Promise-重新理解
Promise 是为了解决异步回调问题而存在的。
用法:
var promiseObj = new Promise((resolve,reject)=>{ // 一些异步的操作 })
参数是一个函数,这个函数有两个参数:resolve和reject。这两个参数分别是两个函数的名字,作用是将Promise的状态从pending分别变成fullfilled和rejected。
promiseObj有then的方法,所以可以写成:
promiseObj.then(function(){},function(){})
then方法,可以传两个参数,第一个是处理new Promise时异步操作成功的回调,第二个函数是异步操作失败的回调,第二个参数可省略。
async await
- async表示函数里面有异步操作,await表示紧跟在后面的表达式需要等待结果
- async函数返回一个promise
基本用法:
async函数返回一个promise对象,可以使用then方法添加回调函数。当函数执行过程中,遇到await会先返回,等到异步操作执行完,才会执行函数体内后边的语句。
愿我们有能力不向生活缴械投降—Lin