ES6+新特性的总结表格

88 阅读1分钟

ES6+新特性的总结表格:

特性描述示例
块级作用域声明letconst声明块作用域变量,const用于声明常量let x = 10; const y = 20;
箭头函数使用=>定义函数,且不绑定自己的thisconst 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 };
模块化使用importexport管理模块export const pi = 3.14; import { pi } from './module';
类和继承使用classextends定义类和实现继承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; }
可选链?.安全地访问对象嵌套属性,避免nullundefined错误const city = user?.address?.city;
空值合并??只在左侧值为nullundefined时返回右侧值const value = input ?? "default";
私有属性(#)使用#定义类的私有属性,仅在类内部可访问class Person { #secret = "hidden"; getSecret() { return this.#secret; } }