一些小知识点

  • 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

  1. async表示函数里面有异步操作,await表示紧跟在后面的表达式需要等待结果
  2. async函数返回一个promise

基本用法:

async函数返回一个promise对象,可以使用then方法添加回调函数。当函数执行过程中,遇到await会先返回,等到异步操作执行完,才会执行函数体内后边的语句。

愿我们有能力不向生活缴械投降—Lin