返回

TC39成员为您揭秘ES2020和ES2021中的核心设计理念

前端

TC39是Ecma International的第39个技术委员会,负责JavaScript语言的标准化工作。每年,TC39都会召开会议,讨论并决定JavaScript的新特性。ES2020和ES2021就是TC39在2020年和2021年通过的两个JavaScript新版本。

本次D2前端技术论坛中,TC39成员、Node.js核心协作者详细介绍了ES2020和ES2021中的核心设计理念。以下是对会议内容的整理和记录:

一、ES2020

  1. Nullish Coalescing Operator(空值合并运算符)

    Nullish Coalescing Operator(??)是一个新的二元运算符,用于合并两个表达式。如果第一个表达式为null或undefined,则返回第二个表达式的值;否则,返回第一个表达式的值。

    例如:

    const a = null;
    const b = 10;
    const c = a ?? b; // c 等于 10
    
  2. Optional Chaining(可选链式调用)

    Optional Chaining(?.)是一个新的操作符,用于调用对象的属性或方法。如果属性或方法不存在,则返回undefined,而不报错。

    例如:

    const user = {
      name: 'John',
    };
    
    const age = user?.age; // age 等于 undefined
    
  3. Dynamic Import(动态导入)

    Dynamic Import(import())是一个新的函数,用于动态导入模块。这意味着可以在运行时加载模块,而无需在代码中静态地导入它们。

    例如:

    const module = await import('./module.js');
    

二、ES2021

  1. Logical Assignment Operators(逻辑赋值运算符)

    Logical Assignment Operators(&&=、||=、??=)是一组新的赋值运算符,用于结合逻辑运算和赋值运算。

    例如:

    let a = 10;
    a &&= 20; // a 等于 20
    a ||= 30; // a 等于 20
    a ??= 40; // a 等于 20
    
  2. Private Fields and Methods(私有字段和方法)

    Private Fields and Methods(#field、#method)是一组新的语法,用于在类中定义私有字段和方法。

    例如:

    class MyClass {
      #field = 10;
    
      #method() {
        return this.#field;
      }
    }
    
  3. Numeric Separators(数字分隔符)

    Numeric Separators(_)是一个新的语法,用于在数字中添加分隔符。

    例如:

    const number = 1000000;
    const formattedNumber = number.toLocaleString(); // "1,000,000"
    

以上只是ES2020和ES2021中部分新特性的介绍。想要了解更多内容,可以查阅TC39的官方文档。

TC39是一个非常活跃的组织,每年都会有很多新的提案被提交和讨论。这些提案最终是否能够成为JavaScript的一部分,取决于TC39成员的投票。

如果您对JavaScript语言的未来发展感兴趣,可以关注TC39的官方网站和社交媒体。