JavaScript 中的 5 大 ES6 特性
介绍
ECMAScript 2015(或 ES6)是 JavaScript 的第六版和最新版,它指定了现代 Web 应用程序的 JavaScript 实现标准。
ES6 是编写 JavaScript 代码的升级方式,它提高了 Web 应用程序的性能并使其更具可扩展性。
对于编码人员来说,它使他们能够少写多做,从而使代码更具可读性和现代性。
在本文中,让我们回顾一下 ES6 中引入的前 5 个特性
让 & 常量:
在 JavaScript 中,用户可以使用三个关键字声明变量, 曾是 , 让 和 常量 .虽然 var 是 JavaScript 中用于创建内存绑定的最古老的关键字,但 let 和 const 是在 ES6 中引入的。
var 的问题是它没有块作用域,并且会导致代码中的很多错误。
在上面的例子中,由于 var 有一个函数作用域,它仍然存在于循环块之外,这意味着循环之外的代码可以访问变量 i。
为了解决这个问题,ES6 引入了 let 和 const 关键字。
let 和 const 都具有块作用域,这意味着它们只能在特定块内访问。
const 与 let 关键字非常相似,不同之处在于,一旦声明,它的值就无法更新。这样做时,将抛出未捕获的类型错误。
要记住的另一件重要事情是使用 var 声明的变量将被提升,这意味着可以在声明之前访问它们。另一方面,由于 let 和 const 具有块作用域,因此在声明之前无法访问它们。
箭头函数
ES6 的下一个重大更新是箭头函数,它本质上使声明函数的语法更加简洁。
传统功能
同样的表达式可以用箭头函数写成这样
使用箭头函数,您不再需要在声明函数时编写函数和 return 关键字。
然而,关于箭头函数,有一些事情需要记住。
- 它们没有自己绑定到 this 或 super 关键字,因此不应该用作方法
- 它们不应该与调用、应用和绑定方法一起使用
- 它们不能用作构造函数
- 它们没有被安置,因此必须在被调用之前声明
解构赋值
它是一个表达式,可以将数组中的值或对象的属性提取到变量中。它是通过获取数据结构(数组或对象),通过赋值将其解构为更小的部分,并将其保存在变量中来完成的。下面是一个演示解构的示例。
如您所见,它获取 LHS 上的每个变量并将其分配给 RHS 上相同索引处的相同元素。在这种情况下,变量 a 和 b 将采用数组的第一个和第二个值。
解构使得从数组/对象中解包数据的过程变得非常简单和可读。
解构还使提取嵌套数组值的过程变得简单。
正如您在上面看到的,要提取嵌套数组的元素,必须使用嵌套数组解构语法。
剩余参数和展开运算符
在 JavaScript 中,rest 参数和扩展运算符具有相同的语法,即 (...),尽管在功能方面,它们是相互矛盾的。
扩展运算符扩展需要多个参数的可迭代对象,例如数组。
它还通过向正在创建的对象添加键值对来扩展对象文字。
另一方面,rest 运算符收集多个元素并将它们存储到单个元素中。
当我们需要在函数中传递参数但不确定要传递多少时,它特别有用。
数组辅助函数
最后但同样重要的是,ES6 中引入的数组方法对于处理数组非常有用。
作为一名 Web 开发人员,每天都需要处理和操作数组,无论是简单数组还是复杂的嵌套数组。 Array Helper Functions/Method 使这变得容易得多,它消除了手动使用 for 循环的需要。
ES6 提供了许多新的数组方法来帮助处理数据。
以下是最常用的前 3 个数组辅助函数:
forEach()
本质上,forEach 方法为数组中的每个元素执行一个回调函数。
注意: forEach 方法不能在空数组上运行。
与 map() 和 reduce() 不同,它总是返回 undefined 并且不可链接。
句法:
例子:
地图()
Map 是最重要的数组辅助方法之一。它返回一个新数组,其中包含对数组的每个元素调用提供的回调函数的结果。同样重要的是要注意 map 不会更改原始数组。
例子
筛选()
Filter 是另一个很棒的数组辅助方法,它可以帮助我们过滤具有提供条件的数组。它返回一个全新的数组,其中包含通过回调函数提供的测试的元素。像地图一样,它不会更改原始数组。
句法
例子
结论
所以这些是 JavaScript 上 ES6 的前 5 个特性。除此之外,您还可以查看其他功能,例如:
模板文字,
模块,
承诺。
在下面的评论部分让我们知道您的想法。
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明
本文链接:https://www.qanswer.top/39162/33362511
标签:ES6,函数,JavaScript,特性,解构,数组,声明 From: https://www.cnblogs.com/amboke/p/16727537.html