ES6(ES2015)新特性整理

发布于:2025-06-24 ⋅ 阅读:(14) ⋅ 点赞:(0)

一、 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}`); } };

 注:如有缺失,请联系作者或在下方评论,我尽量在第一时间补充上去!!!


网站公告

今日签到

点亮在社区的每一天
去签到