Skip to content

ES6+

ES6

  1. 块级作用域:let const
javascript
let age = 18;
const PI = 3.14;
  1. 解构赋值
javascript
const person = {
  name: "张三",
  age: 18,
  gender: "男",
};

const { name, age, gender } = person;
  1. 箭头函数
javascript
const add = (a, b) => a + b;
  1. 模板字符串
javascript
const name = "张三";
const age = 18;
const message = `我的名字是${name},我${age}岁了。`;
  1. 对象方法简写
javascript
const name = "张三";
const age = 18;
const person = {
  name,
  age,
  sayHello() {
    console.log(`你好,我是${name},我${age}岁了。`);
  },
};
  1. 展开运算符
javascript
const person1 = {
    name: "张三",
    age: 18,
    gender: "男",
  },
  person2 = {
    ...person1,
    age: 20,
  };
  1. rest 运算符
javascript
function sum(...nums) {
  return nums.reduce((a, b) => a + b);
}
  1. 对象扩展
javascript
// let userName = 'wangcai';
// let userAge = 18;
// let person = {
//     userName,
//     userAge,
//     sayHello: function() {
//         console.log('你好')
//     }
// }
// person.sayHello();

let userName = "wangcai";
let userAge = 18;
let person = {
  userName,
  userAge,
  sayHello() {
    console.log("Hello");
  },
};
person.sayHello();
  1. Symbol

  2. Proxy

  3. Set、WeakSet

  4. Map、WeakMap

  5. class

ES7

  1. includes
javascript
[1, 2, 3].includes(2); // true
  1. 指数运算符
javascript
2 ** 3; // 8

ES8

  1. Object.values() 和 Object.entries()

  2. padStart() 和 padEnd()

  3. Object.getOwnPropertyDescriptors()

  4. Trailing Commas(函数定义和调用时多加一个逗号)

ES9

  1. async

  2. finally

  3. 对展开运算符增强(进行扩展或修改)

javascript
const obj1 = { a: 1, b: 2 };
const obj2 = { ...obj1, c: 3 }; // 使用对象展开运算符创建新对象 obj2,包含 obj1 的属性,并添加一个新属性 c

console.log(obj2); // 输出: { a: 1, b: 2, c: 3 }

ES10

  1. flat()、flatMap()

  2. Object.formEntries()

  3. trimStart()、trimEnd()

ES11

  1. BigInt

  2. 空值合并操作符 ??

  3. 可选链 ?.

  4. globalThis

  5. for..in 标准化

ES12

  1. 逻辑赋值运算符 ||=??=&&=

ES13

  1. Object.hasOwn()

  2. method.at()

  3. 新增了定义 class 类中成员字段

基于 MIT 许可发布