5个在ES6中修复的JavaScript“坏”的部分

发布时间:2018-11-13 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了5个在ES6中修复的JavaScript“坏”的部分脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

ECMAScript 6(ES6)功能可以分为纯语法糖(如:),增强JavaScript(如导入)的功能和修复JavaScript的“坏”部分(如let关键字)的功能。大多数博客和文章结合了所有这三种类型,并且可以压倒新手。所以我写的这篇文章只关注修复“坏”部分的关键ES6功能。

我希望在本博文结束时你会发现,通过使用像let和fat-arrow这样的ES6功能,你将获得丰厚的回报。

好的,让我们开始吧。

1.块范围

ES5只有“功能级范围”(即你将代码包装在函数中以创建范围)并引发了很多问题。当我们使用“ let ”或“ const ”而不是“ VAR ” 时,ES6提供“块”级别范围(即范围的大括号)。

止范围外的可变吊装

下面的图片显示变量“bonus”不会在“if”块之外提升,使得工作成为大多数编程语言

5个在ES6中修复的JavaScript“坏”的部分

 

防止重复变量声明

当我们在同一范围内使用“let”或“const”声明变量时,ES6不允许重复声明变量。这对于避免来自不同库的重复函数表达式非常有用(如下面的“add”函数表达式)。

5个在ES6中修复的JavaScript“坏”的部分

   

消除对IIFE的需求

在ES5中,在下面的情况下,我们必须使用Immediately Invoked Function ExPression(IIFE)来确保我们不会污染或覆盖全局范围。在ES6中,我们可以使用花括号({})并使用constlet来获得相同的效果。

5个在ES6中修复的JavaScript“坏”的部分

babel - 将ES6转换为ES5的工具

我们需要最终在常规浏览器中运行ES6。Babel是用于将ES6转换为ES5的最流行的工具。它有各种接口,如CLI,节点模块和在线转换器。我将节点模块用于我的应用程序,并使用在线版本快速查看差异。
下图显示了Babel如何重命名变量来模拟“let”和“const”!

5个在ES6中修复的JavaScript“坏”的部分

BabelJS.io重命名变量来模拟let和const

使用循环中的函数变得微不足道

在ES5中,如果你在一个循环中有一个函数(比如for(var i = 0; i <3; i ++){...}),并且如果该函数试图访问循环变量“i”,那么我们就在因为吊装而烦恼。在ES6中,如果使用“ let ”,则可以毫无问题地使用函数。

5个在ES6中修复的JavaScript“坏”的部分

  注意:除非使用新的for..of循环,否则不能使用const,因为它是常量

2.词汇“this”(通过箭头功能

在ES5中,“this”可以根据它被调用的“where”以及甚至“如何”调用而变化,并且为JS开发人员带来了各种各样的痛苦。ES6通过“lexical”消除了这个主要问题。

词典“this”强制变量“this”始终指向物理位于其中的对象。

ES5中的问题和两个解决方法:

在下图中,我们尝试打印用户的FirstName和salary。但我们从服务器(模拟)获得薪水。请注意,当响应返回时,“this”是“window”而不是“PErson”对象。

 

5个在ES6中修复的JavaScript“坏”的部分

ES6中的解决方案

只需使用fat-arrow函数=>,您就会自动获得词汇“this”。

5个在ES6中修复的JavaScript“坏”的部分

第16行显示了如何在ES6中使用=> function
下图显示了Babel如何将胖箭头功能转换为常规ES5功能w / workaround,以便它可以在当前浏览器中运行。
 

5个在ES6中修复的JavaScript“坏”的部分

babel正在将胖箭转换为常规ES5功能w /解决方法#2

3.处理“论据”

在ES5中,“arguments”就像一个Array(即我们可以遍历它),但不是一个Array。因此,排序,切片等所有数组函数都不可用。

在ES6中,我们可以使用一个名为“Rest”参数的新功能。它用3个点表示,名字像  ...... args。Rest参数是一个Array,因此我们可以使用所有的Array函数。

5个在ES6中修复的JavaScript“坏”的部分

4.课程

从概念上讲,JS中没有像“类”(即蓝图)这样的东西,就像Java中的其他OO语言一样。但是很长一段时间以来,当我们使用“new”关键字作为Classes时,人们已经处理了创建对象的“函数”(也就是“函数构造函数”)。

由于JS不支持“类”并且只是通过“原型”来模拟它,因此对于现有的JS开发人员和想要以传统OO方式使用它的新人来说,它的语法非常混乱。对于以下内容尤其如此:创建子类,在父类中调用函数等等

ES6带来了一种在各种编程语言中很常见的新语法,使整个过程变得简单。下图显示了ES5和ES6类的并排比较。

 

5.严格模式

严格模式(“使用严格”)有助于识别常见问题(或“坏”部分),还有助于“保护”JavaScript。在ES5中,严格模式是可选的,但在ES6中,它是许多ES6功能所必需的。因此,像babel这样的大多数人和工具会自动在文件顶部添加“use strict”,将整个JS代码置于严格模式,并迫使我们编写更好的JavaScript。

   

脚本宝典总结

以上是脚本宝典为你收集整理的5个在ES6中修复的JavaScript“坏”的部分全部内容,希望文章能够帮你解决5个在ES6中修复的JavaScript“坏”的部分所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。