ECMAScript 2018(ES9)是 JavaScript 语言的最新标准,是各大主流浏览器所支持的 JavaScript 版本。ES9 在之前的版本基础上,新增了一些对开发者非常友好的特性,用于更优雅地处理数组、对象、Promise 异步回调等操作。在本文中,我们将详细地探讨这些特性的含义、学习和指导意义,并附上一些示例代码。
1. 扩展操作符和 Rest 操作符
ES9 中新增了扩展和 Rest 操作符,它们可以将数组和对象的数据进行快速、可读性高的操作。
首先,看一下扩展操作符。扩展操作符可以将数组或者对象的数据展开成一个新的数组或对象,并且在新的数组或对象中可以添加更多的数据。示例代码如下:
-- -------------------- ---- ------- -- ---- ----- ---- - --- -- --- ----- ---- - --------- -- --- ------------------ -- --- -- -- -- -- -- ---- ----- ---- - - -- -- -- - -- ----- ---- - - -------- -- - -- ------------------ -- - -- -- -- -- -- - -
接着,来看一下 Rest 操作符。Rest 操作符与扩展操作符相反,它可以将数组或对象里的数据缩减成一个新的数组或对象,以便更方便地进行更具体的操作。示例代码如下:
// Rest 操作符 const [a, ...rest] = [1, 2, 3, 4, 5]; console.log(rest); // [2, 3, 4, 5] const { b, ...novel } = { a: 1, b: 2, c: 3, d: 4 }; console.log(novel); // { a: 1, c: 3, d: 4 }
2. Promise 的 finally()
ES9 中的 Promise 新增了一个 finally() 函数,该函数用于在一个 Promise 完成后,不管是成功、失败还是被取消,都会运行一个给定的处理函数。这个处理函数无论如何都会返回一个新的 Promise。示例代码如下:
Promise.resolve('AA') .then(value => console.log(value)) .catch(error => console.error(error)) .finally(() => console.log('finally')); // AA \n finally
3. 正则表达式的 s, dotAll 标志
在 ES9 中,正则表达式新增了 s 标志和 dotAll 属性。s 标志代表 match 任何字符,包括换行符、回车符,而不仅仅是点。dotAll 属性则可以开启 s 标志。示例代码如下:
const str = `One Two Three`; console.log(str.match(/.*/)); // ['One', index: 0, input: 'One\nTwo\nThree'] console.log(str.match(/.*/s)); // ['One\nTwo\nThree']
4. Object.entries() 和 Object.values()
在 ES9 中,Object 内置对象新增了两个方法,Object.entries() 方法和 Object.values() 方法,它们可以快速获取对象的键值和值,方便地进行相关操作。示例代码如下:
const obj = { a: 'AA', b: 'BB', c: 'CC' }; console.log(Object.entries(obj)); // [['a', 'AA'], ['b', 'BB'], ['c', 'CC']] console.log(Object.values(obj)); // ['AA', 'BB', 'CC']
总结
本文介绍了 ES9 的一些新特性,包括扩展操作符和 Rest 操作符、Promise 的 finally()、正则表达式的 s 标志和 dotAll 属性、Object.entries() 和 Object.values() 方法等。这些新特性可以让开发者更加优雅、高效地操作数组、对象和 Promise 异步回调等操作,提高开发的效率。希望本文可以对大家学习 JavaScript 语言起到一定的指导和作用。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64642675968c7c53b050ac3a