ES6+新特性的总结表格:
| 特性 | 描述 | 示例 |
|---|---|---|
| 块级作用域声明 | let和const声明块作用域变量,const用于声明常量 | let x = 10; const y = 20; |
| 箭头函数 | 使用=>定义函数,且不绑定自己的this | const add = (a, b) => a + b; |
| 模板字符串 | 使用反引号支持多行字符串和嵌入表达式 | `Hello, ${name}!` |
| 解构赋值 | 从对象或数组中解构出值 | const [a, b] = [1, 2]; const { name } = person; |
扩展运算符 ... | 展开数组或对象、用作剩余参数 | const arr2 = [...arr1]; function sum(...args) {} |
| 默认参数 | 为函数参数设置默认值 | function greet(name = "Guest") { return Hello, ${name}; } |
| 对象属性简写 | 对象字面量中属性可使用变量名作为属性名 | const age = 25; const person = { name, age }; |
| 模块化 | 使用import和export管理模块 | export const pi = 3.14; import { pi } from './module'; |
| 类和继承 | 使用class和extends定义类和实现继承 | class Student extends Person { constructor() { super(); } } |
| Promise | 处理异步操作,避免回调地狱 | fetch(url).then(response => response.json()); |
| async/await | 基于Promise的语法糖,使异步代码结构清晰 | async function getData() { const data = await fetchData(); } |
| Symbol类型 | 创建唯一的Symbol值,用于定义独特的对象属性 | const sym = Symbol("id"); const obj = { [sym]: "value" }; |
| Set和Map | 新的集合数据结构,Set储存唯一值,Map存储键值对 | const mySet = new Set([1, 2, 3]); const myMap = new Map([["name", "Alice"]]); |
生成器和yield | 使用function*声明生成器函数,用yield暂停执行 | function* gen() { yield 1; yield 2; } |
可选链?. | 安全地访问对象嵌套属性,避免null或undefined错误 | const city = user?.address?.city; |
空值合并?? | 只在左侧值为null或undefined时返回右侧值 | const value = input ?? "default"; |
| 私有属性(#) | 使用#定义类的私有属性,仅在类内部可访问 | class Person { #secret = "hidden"; getSecret() { return this.#secret; } } |