ES6语法包括let和const声明、箭头函数、模板字符串、解构赋值、扩展运算符、类和模块化等。以下是这些特性的具体介绍:
-
let和const声明
- let声明:let允许程序员在块级作用域内声明变量,这意味着变量只在其定义的代码块(由大括号包围)内有效。这避免了var声明的变量提升问题,使得代码更加清晰和安全。
- const声明:const用于声明常量,一旦赋值就不能再更改。它同样具有块级作用域。与let一样,const声明的变量也不能被提升。
-
箭头函数
- 基本用法:箭头函数提供了一种更简洁的函数写法。它们没有自己的this值,而是继承了外层作用域的this值,这使得箭头函数特别适合用作回调函数。
- 简写形式:当箭头函数的参数只有一个时,可以省略括号;当函数体只有一行代码时,可以省略花括号。如果函数体只有一条return语句,还可以省略return关键字。
-
模板字符串
- 字符串插值:模板字符串使用反引号(``)来创建,并支持嵌入表达式和多行字符串。这使得字符串拼接更加方便,可读性更强。
-
解构赋值
- 数组解构:可以从数组中提取值,并将其赋给对应变量。这使得从数组中获取数据变得更加直观和简洁。
- 对象解构:允许从对象中提取属性并赋值给变量,简化了属性的访问过程。
-
扩展运算符
- 数组扩展:可以用来合并数组,复制数组,或者将类数组对象转换为真正的数组。
- 函数参数扩展:可以收集剩余参数为一个数组,也可以用于函数调用时传递参数。
-
类和模块化
- 类的引入:ES6通过class关键字引入了面向对象编程中的类概念,提供了更加清晰和简洁的语法来定义类和处理继承。
- 模块化:ES6支持模块化编程,允许开发者将代码分割成独立的模块,提高了代码的复用性和可维护性。
- ES6中的Set和Map
- 两种新的数据结构,它们分别用于存储唯一值的集合和键值对的集合
- Set
- 基本概念:Set是一种集合,它存储一组唯一的值,不允许重复。Set中的值是无序的,没有索引。
- 操作方法:Set提供了一组操作方法用于添加、删除和检查值的存在。例如,
add(value)
用于添加值,delete(value)
用于删除值,has(value)
用于检查值是否存在。 - 遍历方法:Set可以使用forEach方法进行遍历,也可以通过for...of循环遍历。
-
const set = new Set(); set.add(1); set.add(2); set.add(3); console.log([...set]); // 输出:[1, 2, 3]
2.Map
- 基本概念:Map是一种键值对的集合,它将键映射到值,每个键对应一个值,键是唯一的。Map中的键可以是任意类型的值,包括对象、函数和基本数据类型。
- 操作方法:Map提供了直接修改值的方法,可以通过键来修改对应的值。例如,
set(key, value)
用于添加或更新键值对,get(key)
用于获取键对应的值。 - 遍历方法:Map可以使用forEach方法或for...of循环遍历键值对,也可以通过keys()、values()和entries()方法遍历键、值和键值对。
- 示例代码:
const map = new Map(); map.set('name', 'Alice'); map.set('age', 30); console.log(map.get('name')); // 输出:Alice map.set('age', 31); console.log(map.get('age')); // 输出:31
- Set适用于存储一组唯一的值,而Map适用于存储键值对的集合。