目录
十二、ES6 异步处理之 Promise 对象、Generator 函数 与 async 函数
十三、ES6 Iterator、for...of 与 for await...of 循环
本文是学习阮老师的大作时,做的笔记,详情请戳:ES6 入门教程
一、顶层对象
顶层对象:浏览器环境中顶层对象是window,Node中是global对象。
ES5 中,顶层对象的属性等价于全局变量。
ES6 中,var 和 function 声明的全局变量,依旧是顶层对象的属性;let、const 和 class 声明的全局变量,不属于顶层对象的属性。也就是说,从 ES6 开始,全局变量和顶层对象的属性脱钩。这其实是“块级作用域”的效果。
var a = 1;
window.a // 1
let b = 1;
window.b // undefined
另外,在 ES2020 中,引入了 globalThis 对象,作为顶层对象。详情请戳:GitHub - tc39/proposal-global: ECMAScript Proposal, specs, and reference implementation for `global`。
接下来,看一道面试题:
// 写出输出结果
let len = 10;
function fn() {
console.log(this.len)
}
fn();
let Person = {
len: 5,
say: function() {
fn();
arguments[0]();
}
}
Person.say(fn);
// undefined
// undefined
// undefined
二、ES6 声明变量的方式
三、ES6 块级作用域
四、解构赋值
五、ES6 的 Class
六、扩展运算符(spread)和剩余运算符(rest)
js ES6扩展运算符(spread)和剩余运算符(rest)
七、ES6 中新增的 Symbol 原始数据类型
八、 ES6 引用类型的新特性
九、BigInt 构造函数
十、Set 构造函数和 Map 构造函数
十一、 Proxy 构造函数与 Reflect 对象
十二、ES6 异步处理之 Promise 对象、Generator 函数 与 async 函数
js ES6 异步处理之 Promise 对象、Generator 函数 与 async 函数
十三、ES6 Iterator、for...of 与 for await...of 循环
js ES6 Iterator 遍历器与 for、for...of、for await...of、for...in 和 forEach 循环语句