1、变量

  • let 声明的变量只在它所在的代码块有效,不允许重复声明
  • const 声明是一个只读的常量。一旦声明,常量的值就不能改变。
  • const与let的作用域相同,只在声明所在的块级作用域内有效。

2、块级作用域

  • es5只有全局作用域和函数作用域,没有块级作用域,es6新增了块级作用域
  • let 为javascript新增了块级作用域

3、promise对象

  • promise是异步编程的一种解决方式
  • promise对象的特点:
    • 1.对象的状态不受外界影响,promise对象代表一个异步操作,有三种状态:pending(进行中)、fulfilled(已成功)、rejected(已失败)。
    • 一旦状态改变,就不会再改变,任何时候都可以得到这个结果。
  • promise的缺点:
    • 无法取消Promise,一旦新建就会立即执行,无法中途取消
    • 如果不设置回调函数,Promise内部抛出的错误,不会反映到外部。
    • 当处于pending状态时,无法得知目前进展到哪个阶段了(刚刚开始还是即将完成)
const promise = new Promise(function(resolve, reject) {
  // ... some code

  if (/* 异步操作成功 */){
    resolve(value);
  } else {
    reject(error);
  }
});
promise.then(function(value) {
  // success
}, function(error) {
  // failure
});