随着 JavaScript 的不断发展,ES11 也带来了一些新的变化,本文将介绍这些变化,并提供一些示例代码。
1. 可选链操作符
在以前的 JavaScript 版本中,如果我们要访问一个对象的属性,我们需要先判断这个对象是否存在,否则会导致错误。但是,这样的代码往往比较冗长。ES11 中引入了可选链操作符 ?.
,可以简化这个过程。
-- -------------------- ---- ------- ----- ------ - - ----- -------- -------- - ----- ---------- ------- ---------- ------- - -- ----------------------------------- -- --------- -------------------------------------- -- ---------
在这个示例中,我们使用了可选链操作符 ?.
,它允许我们在一个对象的属性不存在的情况下,不会导致代码错误。
2. 空值合并操作符
在 JavaScript 中,我们经常需要检查一个变量是否为 null
或 undefined
,如果是,则给它一个默认值。在以前的版本中,我们通常使用三元运算符来实现这个功能,但是很不方便。ES11 中引入了空值合并操作符 ??
,可以简化这个过程。
const name = null ?? 'Anonymous'; console.log(name); // 'Anonymous' const age = undefined ?? 18; console.log(age); // 18
在这个示例中,我们使用了空值合并操作符 ??
,它允许我们在一个变量为 null
或 undefined
的情况下,给它一个默认值。
3. Promise.allSettled 方法
在以前的 JavaScript 版本中,我们经常使用 Promise.all 方法来并行处理多个异步操作,并等待它们全部完成。但是,如果其中有一个操作失败,Promise.all 方法就会立即返回失败状态,而不会等待其他操作完成。ES11 中引入了 Promise.allSettled 方法,可以解决这个问题。
-- -------------------- ---- ------- ----- -------- - - --------------------------- ------------------------ -------------------------- -- ---------------------------- ------------- -- ---------------------- -- ------- -- - -- - ------- ------------ ------ --------- -- -- - ------- ----------- ------- ------- -- -- - ------- ------------ ------ --------- - -- -
在这个示例中,我们使用了 Promise.allSettled 方法来并行处理多个异步操作,并等待它们全部完成。即使其中有一个操作失败,Promise.allSettled 方法也会等待其他操作完成,并返回一个数组,其中包含每个操作的状态和结果。
4. String.prototype.matchAll 方法
在以前的 JavaScript 版本中,我们经常使用正则表达式来匹配字符串,并使用全局标志来匹配多个结果。但是,如果我们需要访问每个匹配的详细信息,就需要使用循环来逐个访问。ES11 中引入了 String.prototype.matchAll 方法,可以简化这个过程。
-- -------------------- ---- ------- ----- --- - ------- -------- ----- ----- - ------------- ----- ------- - -------------------- --- ------ ----- -- -------- - ------------------- - -- ------- -- --------- ------ -- ------ ------- -------- ------- ---------- -- --------- ------ -- ------ ------- -------- ------- ----------
在这个示例中,我们使用了 String.prototype.matchAll 方法来匹配字符串,并访问每个匹配的详细信息。这个方法返回一个迭代器,可以使用 for...of
循环来逐个访问。
结论
ES11 中引入了一些新的变化,包括可选链操作符、空值合并操作符、Promise.allSettled 方法和String.prototype.matchAll 方法。这些变化可以简化我们的代码,提高我们的开发效率。希望这篇文章可以帮助你更好地理解 ES11 中的新变化,并在实际开发中使用它们。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6754f35b1b963fe9cc513f52