ECMAScript是JavaScript的规范,它每年都会发布新的版本。ES8是2017年发布的版本,新版本包括了一些语法上的新特性,也包括了一些原生API的新增和优化。本文将介绍一些ES8的新特性和优化。
字符串填充方法
在ES8中,新增了两个字符串方法:padStart()
和padEnd()
。这两个方法可以在原有字符串的前面或后面填充新字符串,以达到指定长度的效果。
padStart()
方法用于在字符串头部填充字符,通常用于补全数字、日期的位数。比如:
----- --- - ----- ----- --------- - --------------- ----- ----------------------- -- ------
padEnd()
方法与padStart()
方法类似,但是是在字符串尾部填充内容。比如:
----- --- - -------- ----- --------- - -------------- ----- ----------------------- -- -----------
异步迭代器
在ES8中,可以使用异步迭代器来遍历异步数据结构。迭代器是ES6提供的一种遍历数据结构的方法,异步迭代器则可以异步地迭代数据结构。这在异步编程中非常有用。
假设我们有一个异步生成器函数,可以使用for-await-of
循环遍历它的结果。
----- --------- ------------------ - ----- -- ----- -- ----- -- - ------ ---------- - --- ----- ------ ----- -- ------------------- - ------------------- - -----
正则表达式 named capture groups
在ES8中,正则表达式支持了命名捕获组,可以让我们在匹配时给捕获到的分组取一个名称。
----- -- - ----------------------------------------------- ----- ------ - ---------------------- -------------------------------- -- ------ --------------------------------- -- ---- ------------------------------- -- ----
Object.values/Object.entries
在ES8中,新增了Object.values()
和Object.entries()
方法,方便我们操作对象的数据。
Object.values()
方法可以返回一个对象中所有的属性值组成的数组,比如:
----- --- - - -- -- -- -- -- - -- ----- ------ - ------------------- -------------------- -- --- -- --
Object.entries()
方法可以返回一个对象中每个属性和值组成的数组,比如:
----- --- - - -- -- -- -- -- - -- ----- ------- - -------------------- --------------------- -- ------ --- ----- --- ----- ---
这些方法的实现可以使用for...in
循环结合hasOwnProperty()
方法,但是Object.values()
和Object.entries()
方法更加简洁明了。
函数参数列表和调用
在ES8中,函数的参数列表和调用方式也有一些变化。
可以使用...
语法将所有参数组合成一个数组,方便我们进行操作。比如:
-------- ------------------ - ------------------------- ---- - ------------- ---- ----- -- --- -- --
此外,在函数调用时也可以使用...
语法将一个数组展开为多个参数,比如:
-------- ------ -- -- - ------ - - - - -- - ----- --- - --- -- --- ----- --- - ------------ -- -
Object.getOwnPropertyDescriptors
在ES8中,新增了Object.getOwnPropertyDescriptors()
方法,可以获取一个对象的所有属性描述符(包括设置值、获取值、可枚举性、可配置性、可写性等)。
----- --- - - ----- ------ ---- --- --- ---------- - ------ ------------- --------------- - -- ----- ----------- - -------------------------------------- -------------------------
总结
ECMAScript 2017 (ES8)是JavaScript一次比较小的迭代,但是新增的特性和优化都非常实用,特别是字符串填充方法padStart()
和padEnd()
,以及异步迭代器和正则表达式的命名捕获组等。我们应该熟练掌握这些特性和优化,把它们应用到我们的代码中,提高代码的效率和可读性。
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/64754c7a968c7c53b02629b8