第一章:走进 ES6
1. 什么是 ES6(ECMAScript 2015)
ES6,全称 ECMAScript 2015,是 JavaScript 语言在 2015 年发布的第六版标准。
它是 JavaScript 发展史上一次具有里程碑意义的更新,被很多开发者称为 现代 JavaScript 的起点。
在 ES6 之前,JavaScript 的语法相对原始,很多功能缺失:
- 没有官方的模块化方案,只能依赖 CommonJS(Node.js)或 AMD/RequireJS(浏览器)。
- 没有块级作用域,
var
声明的变量会产生 变量提升 和作用域污染。 - 异步编程依赖 回调函数,容易出现“回调地狱”。
- 面向对象的写法比较繁琐,必须通过原型链手动实现继承。
ES6 的出现,解决了这些长期困扰开发者的问题,让 JavaScript 变得更简洁、更优雅、更强大。
2. 为什么需要 ES6?
在 2010 年以后,JavaScript 的应用场景急剧扩展:
- 前端工程化:单页面应用(SPA)、复杂交互逻辑,需要更强的语言特性。
- Node.js 的兴起:JavaScript 进入后端,必须具备模块化、异步处理、工程化能力。
- 移动端与大规模项目:对代码可维护性、团队协作有更高要求。
如果继续依赖 ES5,开发者会遇到以下痛点:
- 模块化缺失 → 代码拆分和复用困难。
- 语法冗余 → 函数、对象、继承写法不直观。
- 异步编程复杂 → 大量嵌套回调,难以维护。
- 作用域问题 →
var
容易导致 bug。
ES6 的设计目标就是:
让 JavaScript 语言在 语法层面更加现代化,在 功能层面更接近强类型语言,同时保证 向后兼容性。
3. ES6 的主要特性概览
ES6 引入了大量新特性,常见的包括:
- 新的变量声明:
let
和const
,替代var
,引入块级作用域。 - 解构赋值:快速提取数组和对象中的数据。
- 模板字符串:支持变量插值和多行字符串。
- 箭头函数:更简洁的函数写法,不绑定
this
。 - 类(class):更直观的面向对象写法,支持继承。
- 模块化(import/export):官方提供模块系统。
- Promise:异步编程的基础,避免“回调地狱”。
- 新的集合类型:
Set
和Map
,提升数据结构能力。 - Symbol 类型:避免对象属性名冲突。
- 迭代器和生成器:支持自定义遍历规则和更强的异步能力。
这些特性极大提升了 JavaScript 的开发体验。
4. 浏览器和 Node.js 的支持情况
浏览器
自 2017 年起,主流浏览器(Chrome、Firefox、Safari、Edge)都已经原生支持大部分 ES6 特性。
要在浏览器中使用 ES6 模块,只需在 <script>
标签中添加 type="module"
:
<script type="module" src="main.js"></script>