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
});