Bootstrap

ES10新特性

ES10(也称为 ECMAScript 2019)是 JavaScript 的第10个版本,于2019年发布。

  1. Array.prototype.flat()Array.prototype.flatMap():这两个方法用于处理嵌套数组。flat() 方法将嵌套数组展平为一个新数组,而 flatMap() 方法首先使用映射函数将数组映射为一个新数组,然后再展平这个新数组。

  2. String.prototype.trimStart()String.prototype.trimEnd():这两个方法用于去除字符串的开头和结尾的空格。

  3. Object.fromEntries():这个方法可以将一个键值对的列表转换为一个对象。它接受一个可迭代对象,如数组或 Map 对象,并返回一个新的对象。

  4. Symbol.prototype.description:这个属性用于获取 Symbol 对象的描述字符串。

  5. BigInt:这是一种新的原始数据类型,用于表示任意精度的整数。它可以通过在整数后面添加 n 来创建。

  6. 动态 import():这是一种动态导入模块的方式,可以在运行时根据条件来决定加载哪个模块。

  7. globalThis:这是一个全局对象的引用,可以在任何环境中访问全局对象,无论是在浏览器中还是在 Node.js 中。

附加

  1. 空值合并运算符(??):当左侧的操作数为null或undefined时,返回右侧的操作数,否则返回左侧的操作数。例如:
let a = null; let b = "Hello, World!";
console.log(a ?? b); // 输出 "Hello, World!
  1. 数字分隔符(_):用于增强数字的可读性,在千位和百万位等位置添加下划线。例如:
console.log(1000_000); // 输出 1,000,000
  1. Promise.finally(): 当Promise对象完成(无论是fulfilled还是rejected)时,都会执行该方法。

  2. 逻辑运算符&&和||的默认返回值:逻辑运算符&&和||在进行运算时,如果操作数为undefined或null,会返回undefined或null,否则返回运算结果。例如:

let a; console.log(a && b); // 输出 undefined
  1. 链式调用/可选链操作符(?.):这个操作符可以简化对可能为 null 或 undefined 的属性或方法的访问。
    在旧的 JavaScript 中,如果要访问一个对象的属性或调用一个方法,需要先检查该对象是否为 null 或 undefined,以避免出现错误。例如:
if (obj && obj.prop && obj.prop.method) {
  obj.prop.method();
}

使用可选链操作符简化后:

obj?.prop?.method?.();

如果 obj、obj.prop 或 obj.prop.method 中的任何一个为 null 或 undefined,那么整个表达式的值将为 undefined,而不会抛出错误。
可选链操作符还可以用于数组的索引访问和函数的调用。例如:

const arr = [1, 2, 3];
console.log(arr?.[0]); // 输出 1

const func = obj?.method?.();
;