- 作用域:ES6引入了
let
和const
关键字来定义变量,它们提供了块级作用域,与函数作用域的var
不同。 - 模板字符串:ES6允许使用反引号(``)包围的字符串,可以在字符串中嵌入表达式(${expression})。
- 箭头函数:提供了一种更简洁的函数写法,并且
this
在箭头函数中是词法作用域,不会像传统函数那样在运行时绑定。 - 类:ES6通过
class
关键字引入了类的概念,使得对象原型的写法更加清晰和面向对象。 - 模块化:ES6支持使用
export
和import
进行模块的导出和导入,这有助于组织大型应用程序的结构。 - 默认参数:函数可以设置默认参数,这样在调用时如果没有提供相应的参数值,就会使用默认值。
- 解构赋值:允许从数组或对象中提取值,赋值给变量。
- 扩展运算符:使用
...
可以展开数组或对象,用于函数参数、数组字面量或对象字面量中。 - Promise和异步处理:ES6引入了
Promise
对象,提供了更好的异步编程解决方案。 - Symbol:新增的原始数据类型,用于创建唯一的标识符,常用于对象的键,以避免属性名冲突。
- Set和Map:新的集合类型
Set
和Map
,提供了更强大的集合操作能力。 - 尾递归优化:虽然不是所有的JavaScript引擎都已经实现,但ES6规范支持尾递归优化,有助于提高递归函数的性能。
- Proxy:提供了一种在对象的基本操作上添加自定义行为的方式。
- Reflect:一个内置对象,将一些原本属于语言内部的方法放到了Reflect对象上,使其成为显式API。
- TypedArray:提供了一种新的数组类型,用于高性能地处理大量数值数据。