一、 let
和 const
声明
let
用于声明块级作用域的变量。const
用于声明常量(不可重新赋值)。let x = 10; const PI = 3.14;
二、箭头函数(Arrow Functions)
更简洁的函数语法,并且自动绑定
this
。const add = (a, b) => a + b;
三、模板字符串(Template Literals)
支持多行字符串和变量插值。
const name = "Alice"; console.log(`Hello, ${name}!`);
四、解构赋值(Destructuring Assignment)
从数组或对象中提取值并赋给变量。
const [a, b] = [1, 2]; const { name, age } = { name: "Bob", age: 30 };
五、 默认参数(Default Parameters)
函数参数可以设置默认值。
function greet(name = "Guest") { console.log(`Hello, ${name}!`); }
六、剩余参数(Rest Parameters)
使用
...
收集剩余参数为数组。function sum(...numbers) { return numbers.reduce((a, b) => a + b, 0); }
七、扩展运算符(Spread Operator)
用于展开数组或对象。
const arr1 = [1, 2]; const arr2 = [...arr1, 3, 4]; // [1, 2, 3, 4]
八、 类(Classes)
引入
class
语法糖,更接近传统面向对象编程。class Person { constructor(name) { this.name = name; } greet() { console.log(`Hello, ${this.name}!`); } }
九、 模块化(Modules)
支持
import
和export
语法。// math.js export const add = (a, b) => a + b; // app.js import { add } from './math.js';
十、Promise
提供更优雅的异步编程方式。
const fetchData = () => { return new Promise((resolve, reject) => { setTimeout(() => resolve("Data fetched"), 1000); }); };
十一、Symbol 类型
唯一且不可变的数据类型,通常用作对象属性的键。
const sym = Symbol("unique"); const obj = { [sym]: "value" };
十二、迭代器和 for...of
循环
支持自定义迭代器,
for...of
用于遍历可迭代对象。const arr = [1, 2, 3]; for (const num of arr) { console.log(num); }
十三、Set 和 Map
Set
存储唯一值,Map
存储键值对(键可以是任意类型)。const set = new Set([1, 2, 2, 3]); // {1, 2, 3} const map = new Map(); map.set("name", "Alice");
十四、Object.assign
用于合并多个对象的属性。
const obj1 = { a: 1 }; const obj2 = { b: 2 }; const merged = Object.assign({}, obj1, obj2); // { a: 1, b: 2 }
十五、增强的对象字面量
更简洁的对象定义方式。
const name = "Alice"; const person = { name, greet() { console.log(`Hi, ${this.name}`); } };
注:如有缺失,请联系作者或在下方评论,我尽量在第一时间补充上去!!!