ECMAScript 6新增了哪些特性
ECMAScript 6(ES6)是JavaScript语言的一次重要更新,它引入了许多新特性和改进,使得JavaScript更加现代化和强大。以下是一些主要的新增特性:
1. let 和 const
let:用于声明块级作用域的变量。const:用于声明常量,一旦赋值就不能再改变。
2. 箭头函数
- 提供了一种更简洁的函数书写方式。
- 箭头函数没有自己的
this,它会捕获其所在上下文的this值。
3. 模板字符串
- 使用反引号(
`)包裹的字符串,可以包含嵌入的表达式和多行文本。 - 支持字符串插值和标签模板。
4. 解构赋值
- 允许从数组或对象中提取数据并赋值给变量。
- 可以用于函数参数和返回值。
5. 默认参数
- 函数参数可以有默认值。
- 如果调用时没有提供该参数,则使用默认值。
6. rest 参数
- 允许将不定数量的参数表示为一个数组。
- 通常用于函数参数列表的末尾。
7. spread 操作符
- 用于展开数组或对象。
- 可以用于函数调用、数组字面量和对象字面量。
8. 类(Class)
- 引入了基于原型的面向对象编程的语法糖。
- 支持继承、构造函数、静态方法和实例方法。
9. 模块(Module)
- 支持ES6模块系统,使用
import和export关键字。 - 提高了代码的可维护性和可重用性。
10. Promise
- 提供了一种处理异步操作的新方式。
- 表示一个异步操作的最终完成(或失败)及其结果值。
11. 生成器(Generator)
- 使用
function*语法定义的函数,可以暂停执行并在需要时恢复。 - 通常与
yield关键字一起使用。
12. 迭代器(Iterator)和可迭代对象(Iterable)
- 定义了
Symbol.iterator方法,使得对象可以被迭代。 - 支持
for...of循环。
13. 新的内置对象
Map:键值对的集合,键可以是任意类型。Set:唯一值的集合。WeakMap和WeakSet:弱引用版本的Map和Set。Symbol:用于创建唯一的标识符。
14. 新的全局对象属性和方法
globalThis:指向全局对象的标准方式。Object.entries()、Object.values()、Object.fromEntries()等实用方法。
15. 正则表达式增强
- 支持
u(Unicode)、y(粘性)和s(dotAll)标志。 - 新的
RegExp构造函数和方法。
16. 错误处理增强
Error.captureStackTrace():用于捕获堆栈跟踪信息。- 新的错误类型,如
SyntaxError、TypeError等的改进。
17. 数值和数学增强
- 新的数值字面量表示法,如二进制和八进制。
Math对象新增了一些方法,如Math.trunc()、Math.sign()等。
18. JSON增强
JSON.stringify()和JSON.parse()的新选项。
这些特性极大地丰富了JavaScript的表达能力和编程范式,使得开发者能够编写更简洁、更高效的代码。