JavaScript是Web上的一种动态语言,它被全球的开发人员广泛采用。 实际上,JavaScript的流行为其强大的社区做出了贡献。
<>
当前-经常发布新的库,框架和工具,以使JavaScript在有能力的开发人员手中变得更强大和非常有用,而其已建立的资源会随着时间的推移而不断改进。
JavaScript是活动存储库中排名第一的语言,称为
GitHub的在LiveEdu.tv上也可以看到同样的趋势,其中48,567个与JavaScript相关的视频是由热情的学习者和工程师的用户群创建的,他们希望提高自己的职业和技能。
许多开发人员在他们的前端之旅中都利用了JavaScript,但是,大多数初学者和经验丰富JavaScript程序员都会犯一些常见JavaScript开发错误。 在本文中,我们将经历一些常见错误,以便您避免在开发过程中也犯同样的错误。
1.内存管理内存管理对于开发至关重要,而在使用JavaScript时也是有效的。 许多开发人员犯了根本不考虑内存管理的错误。 由于它们的应用程序将使用超出预期的内存,因此这可能导致它们遇到一些有问题的实例,并且还可能导致崩溃整个系统的风险。 这些开发的大多数都没有考虑内存泄漏。
JavaScript是一种垃圾收集语言,因此它提供了有效处理内存所需的所有工具。
“根”用于处理JavaScript中的垃圾收集。 根是一个全局变量,用于存储对代码不同部分的引用。 为了使用roots变量获得一定的效果,使用了“扫描并标记”算法。 遵循Mozilla的简单指南,您可以阅读有关JavaScript中内存管理的更多信息。 2. ==(比较)和=(分配)JavaScript开发人员通常将比较和赋值运算符混淆。 甚至由于经验丰富的开发人员或初学者的错别字也可能发生,而他们尚未发现两个操作员之间的区别。
赋值运算符(“ =”)与比较运算符(“ ==”)完全不同。 赋值运算符负责为变量赋值,而比较运算符比较两个值,并返回1或0。真正的问题是因为JavaScript缺乏检测这种类型错误的错误机制,因此它完全取决于开发人员解决这个问题。 让我们看下面的例子;
var x = 23;
if (x == 23){ do something; }
上面的代码将正确执行。
在第一条语句中,变量x的值将为23。第二条语句将检查“ x”的值是否等于23。如果为true,则将执行该条件下的代码。
现在,让我们看一下下面的代码行。
var x = 12;
If (x = 2) { do something; }
现在,您可以在上面的代码中看到错字了。
x在第一个语句中最初分配给12之后,现在将其分配给2。
对于此类错误,将不会有任何错误消息,因为如果(x = 2)计算结果为true或1,则该语句将导致代码其余部分的行为发生一系列级联变化。
一点都不可取!
3.'+'符号用作串联和加法
JavaScript开发中的另一个常见错误是不能正确使用“ +”运算符。 “ +”的行为根据其使用环境而变化。 让我们看一下两种不同的情况。
场景1var x = 23 + 8;
上面的语句将返回31并将其存储到变量x。
一切都很好。
方案2
var x = 23 + “8”;
上面的语句也将执行,但是将存储在x中的最终结果是238。奇怪吗?
其实并不是!
'+'运算符也适用于字符串,因此结果为238而不是31。
最好通过自我意识来避免错误,或者在涉及用户输入时,每次想进行加法操作时都可以简单地使用parseInt()函数。
var x = 23 + parseInt(“8”, 23);
4.未定义vs空
当涉及到undefined和null时,JavaScript的工作原理有所不同。 它以不同的方式处理变量和对象,并将变量分配给
“ undefined”和对象为“ null”,尤其是在首次初始化它们时。如果您不理会默认分配,则错误很容易渗入您的程序。 为了确保您忽略了这些问题,您需要检查对象是否不为null以及对象类型是否未定义。 同样,应首先执行未定义的检查,如下代码所示。
if (typeof object! == “undefined” && object!== null){do something;}
上面的代码行将正常工作。
但是,以下代码行将引发错误。
if (object!== null && typeof object!==”undefined”){do something;}
5.块级范围的错误
我们要讨论的最后一个错误是JavaScript开发人员如何无法理解块级范围。 与其他编程语言不同,块级范围的工作原理与其他编程语言不同。 让我们借助示例来了解它。
for (var i=0; i< 5; i++) {
do something;
}
console.log(i);
上面的代码行将i的值返回为5。感到惊讶吗?
别这样,因为这就是JavaScript在块级的工作方式。
它带有最后一个已知值,并且变量的寿命不限于for循环的范围。
该行为通常被称为可变提升。
那么,您如何处理这种行为? 您可以使用let关键字来发挥自己的优势,该关键字现已随ECMAScript 6一起发布。您可以在详细信息中查看有关它的更多信息。
JavaScript变量教程 。 最后的想法而已! 如果您注意到它们,并确保这些错误不会继续影响您JavaScript开发,并可以节省大量时间!
使用JavaScript编码时,您会犯什么类型的常见错误? 请在下面评论让我们知道!
From: https://bytes.com/topic/javascript/insights/968158-5-common-javascript-development-mistakes-avoid