随着前端技术的不断发展,JavaScript 也得到了不断的改进和完善,其中最新的 ECMAScript 2017(也称为 ES8)规范中新增了许多有用的特性,可以帮助开发者更好地进行开发。在本篇文章中,我们将会介绍 ES8 中的七个有用的特性。
1. Async/Await
在 ES8 中,新增了 async 和 await 这两个关键字,用于简化异步编程。今天的 Web 应用程序通常需要加入异步操作,例如通过 AJAX 调用后端 API、等待时间较长的计算、以及用户输入的响应等。使用 async 和 await 可以让异步操作变得更加容易。
在自己的函数中,用 async 关键字来定义一个异步函数,可以让函数返回一个 Promise 对象。这个 Promise 被 resolve() 后,就会得到异步获取到的数据。在异步函数内部使用 await 来等待 Promise 对象的结果,使代码看起来更自然且易读。
async function getUsers() { let response = await fetch('https://jsonplaceholder.typicode.com/users'); let data = await response.json(); return data; } getUsers().then(users => console.log(users));
2. Trailing Commas
在 ES8 中,多了一种语法特性:函数参数、数组和对象的末尾可以加上尾随逗号,这在代码插入和修改时非常便利。在旧版的 JavaScript 中,尾随逗号会将在调用函数或数组/对象字面量中的逗号列视为有效输入,从而导致语法错误。
当存在代码的版本控制系统中时,维护代码更加容易。例如,当需要添加或删除对象属性时,如果每行结束后加上逗号,这样增加或减少属性都可以在版本控制系统中进行比较,变化也更加明显。
let obj = { prop1: 'value1', prop2: 'value2', // <-- 多加的逗号 }
3. Object.values 和 Object.entries
在 ES8 中,新增了 Object.values 和 Object.entries 这两个方法,用于获取对象的值和键值对数组。这使得操作对象变得更加容易,我们可以很快地获取对象的值,而不必使用 Object.keys 或手动迭代键。
-- -------------------- ---- ------- ----- --- - - ----- ------- ---- --- ---- ---- ---------- -- ----- ------ - ------------------- -------------------- -- - ------- --- ---- ---------- - ----- ------- - -------------------- --------------------- -- - -------- -------- ------- ---- ------- ---- ----------- -展开代码
4. String padding
在 ES8 中,还新增了两个字符串方法:padStart() 和 padEnd()。使用这两个方法可以在字符串的开头或结尾填充空格或其他字符,以达到指定的长度。
使用 padStart() 可以在字符串的前面添加字符或空格,直到字符串的长度达到指定长度。同样地,使用 padEnd() 可以在字符串的结尾添加指定的字符或空格。
const str1 = 'hello'; console.log(str1.padStart(10,'*')); // ******hello console.log(str1.padEnd(10,'*')); // hello******
5. Exponentiation Operator
在 ES8 中,新增了一个幂运算符:**。这个运算符接受两个操作数,并将第一个操作数的幂计算为第二个操作数。
console.log(2 ** 3); // 8 console.log(2 ** 2 ** 3); // 256 console.log((2 ** 2) ** 3); // 64
6. Object.getOwnPropertyDescriptors()
在 ES8 中,新增了一个方法:Object.getOwnPropertyDescriptors()。它返回一个对象的所有属性的描述符。
-- -------------------- ---- ------- ----- --- - - ---------- ------- -- -------------------------- ----------- - ------ ------ --- --------------------------------------------------- -- - -- ---------- - ------ ------- --------- ----- ----------- ----- ------------- ---- -- -- --------- - ------ ------ --------- ------ ----------- ------ ------------- ----- - -- -展开代码
7. SharedArrayBuffer
在 ES8 中,新增了一项特性:SharedArrayBuffer,这是一个新的构造函数。它提供了一种在多个代理之间共享二进制数据的方法。
const sharedBuffer = new SharedArrayBuffer(1024 * 1024); const bufferView1 = new Uint8Array(sharedBuffer); const bufferView2 = new Uint8Array(sharedBuffer); bufferView1[0] = 1; console.log(bufferView2[0]); // 输出 1
小结
ES8 提供了许多有用的特性,这些特性可以使开发者的工作更加简单和自然。本篇文章介绍了七个功能,包括 Async/Await、Trailing Commas、Object.values 和 Object.entries、String padding、Exponentiation Operator、Object.getOwnPropertyDescriptors() 和 SharedArrayBuffer,它们都有其各自独特的用途,可以帮助你更好地编写 JavaScript 代码并提高代码质量。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/67c27b4d314edc2684bc75e0