ECMAScript 2017(也称作 ES8)是 JavaScript 的最新版本,于 2017 年 6 月发布。它包含了很多新特性,即使你是一位有经验的前端开发者,也可能不知道所有的特性。本文将详细讨论 ES8 这些新特性并给出示例代码。
1. Object.entries() 和 Object.values()
在 ES8 中,我们有两个新的方法用来获取对象的键值和键值对:Object.entries()
和 Object.values()
。Object.entries()
可以将对象转化为键值对数组;Object.values()
可以将对象的值转化为数组。
-- -------------------- ---- ------- ----- --- - - ----- ------ ---- --- ------- ------ -- -- ---------------- --------------------------------- -- ------- --------- ------- ------- ---- ---------- -------- -- --------------- -------------------------------- -- ------- ------- --- -------
这些方法的返回值是一个数组,而不是一个类似数组的对象。
2. async 和 await
这是 ES8 中最强大的特性之一。async
关键字定义一个异步函数,await
关键字等待异步函数返回结果。这两个关键字一起使用,可以让我们更方便的操作异步操作,避免了大量回调嵌套的问题。
async function fetchData() { const response = await fetch('http://example.com/api/data'); const data = await response.json(); return data; } fetchData().then(data => console.log(data));
在这里,我们定义了一个 fetchData
函数,它使用 fetch
方法来获取数据,并且使用 await
等待 fetch
返回结果。这个函数返回的是一个 promise,我们可以使用 then
方法得到结果。
3. Object.getOwnPropertyDescriptors()
ES8 中新增了一个方法 Object.getOwnPropertyDescriptors()
,它可以获取对象所有的属性描述符。这个方法常常在使用 Object.defineProperties()
来定义对象属性时使用。
-- -------------------- ---- ------- ----- --- - - ----- ------ ---- --- -- ----- ----------- - -------------------------------------- ------------------------- -- ------- -- - -- ----- - ------ ------ --------- ----- ----------- ----- ------------- ---- -- -- ---- - ------ --- --------- ----- ----------- ----- ------------- ---- - -- -
4. String padding
在 ES8 中,我们有两个新的方法可以给字符串填充指定的字符:padStart()
和 padEnd()
。
const str = 'Hello'; console.log(str.padStart(10, 'x')); // "xxxxxHello" console.log(str.padEnd(10, 'x')); // "Helloxxxxx"
在这里,我们给字符串 Hello
添加了前后填充字符 x
,使其总长度为 10。padStart()
方法是在字符串头部填充,padEnd()
方法是在字符串尾部填充。
5. Trailing commas
在 ES8 中,我们可以在对象与数组的最后一个元素后添加逗号。这个特性让代码更好维护,并且也很方便的在版本控制系统中查看变更历史。
-- -------------------- ---- ------- ----- --- - - ----- ------ ---- --- -- ----- --- - --- -- ---- ----------------- -- - ----- ------ ---- -- - ----------------- -- --- -- --
如上例所示,我们可以在对象 obj
和数组 arr
后添加逗号,这不会影响代码的执行。
总结
ES8 包含了很多新特性,让 JavaScript 更加强大和易用。在本文中,我们介绍了一些常见的新特性,并给出了使用示例。学习这些新特性可以让我们更加高效的编写 JavaScript 代码,提高工作效率。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/647cfba2968c7c53b07e09d5