JavaScript 已经成为前端开发的必备技能之一,随着 ES6 的发布,越来越多的人开始关注 JavaScript 的发展。但是 ES6 并不是 JavaScript 的终点,JavaScript 语言会不断发展,不断完善,这就是 ES7 和 ES8 的出现。
ES7:更多的语言特性
Array.prototype.includes()
Array.prototype.includes()
是 ES7 中一个重要的方法,它可以检测一个数组是否包含一个值,返回值为布尔类型。
示例代码:
const arr = [1, 2, 3, 4]; console.log(arr.includes(3)); // true console.log(arr.includes(5)); // false
指数操作符
ES7 中还引入了一个新的操作符:指数操作符 **
,表示指数运算。
示例代码:
console.log(2 ** 3); // 8 console.log(4 ** (1/2)); // 2
ES8:更多的异步操作
ES8 增加了一些新的特性来支持异步操作。
Async/Await
Async
和 Await
是 ES8 中用于异步编程的两个关键字,以前在使用 Promise 的时候,需要使用 then()
将 Promise 调用链串起来。而使用 Async
和 Await
可以使代码更简洁易懂。
示例代码:
// javascriptcn.com 代码示例 function sleep(ms) { return new Promise(resolve => setTimeout(resolve, ms)); } async function waitForSomeTime() { console.log('1'); await sleep(2000); console.log('2'); } waitForSomeTime();
上述代码中,waitForSomeTime()
中的 await
会等待 sleep() 方法运行完成,然后再执行下面的代码。
Object.values()/Object.entries()
ES8 中新增了两个方法 Object.values()
和 Object.entries()
,分别用于获取对象中的所有值和键值对数组。
示例代码:
const obj = {a:1, b:2, c:3}; console.log(Object.values(obj)); // [1,2,3] console.log(Object.entries(obj)); // [['a',1],['b',2],['c',3]]
总结
ES7 和 ES8 的出现标志着 JavaScript 的发展,ES6 中已经包含了许多令人惊喜的特性,而 ES7 和 ES8 的新增特性更是为开发者们提供了更多的语言工具来开发更强大、更具有竞争力的应用程序。无论是在现有项目还是将来的项目中,我们都可以使用这些特性来提高开发效率和代码质量。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/652ddbe37d4982a6ebef8d28