来源:达内IT教育-东莞校区
时间:2020/1/17 10:59:28
今天小编要跟大家分享的文章是关于Web前端工程师该如何写出高质量的JavaScript代码。很多正在从事web前端工作的小伙伴们都想知道怎样写出高质量的JavaScript。因为想写好一个JavaScript确实并不是一份简单的事情,所以我们来聊聊要写好JavaScript代码的一些细节。关注好这些细节,你也能写出高质量的JavaScript代码了。
所谓的高质量的JavaScript代码,其实指的就是可维护性高,可读性高,可拓展性高的代码,不仅开发的过程中写得舒服,而且后期维护也很轻松的代码质量。让我们一起从细节来把握我们的JavaScript质量。
一、可维护性高的代码
在我们开发过程中,当出现bug的时候,我们立刻去修复,这时候解决代码bug的思路是清晰的。否则,你去做了别的代码任务或者这个bug出现了一段时间,你再去处理,你就忘了你写的思路是什么了,那这时候去处理这些代码你就需要想两个问题了:
1.花时间去学习和理解这个代码问题
2.花时间了解bug的解决方案
同时,你如果是在企业中做的大型项目,都是团队开发,开发和维护可能都不是同一个人(发现bug和修复bug的都不是作者)。
所以,必须降低大量的理解代码的时间,无论是你自己写的代码,还是团队中其他人的代码。
这关系到整个项目的发展和开发团队每个人的生活幸福啊,毕竟我们应该多花时间去研究更多好的代码想法,而不是时间都浪费在维护遗留代码里面。
所以,可维护性高的代码很重要,一般可维护性高的代码都有以下这些原则:
1. 可读性高(例如好的命名,解析性强的注释)
2. 一致性强(命名风格,编码风格,代码规范)
3. 可预测性(明显看出运行效果)
4. 风格统一(看上去就知道是不是同一个人写完的)
5. 有记录(有清晰的注释开发记录)
二、全局变量的问题
什么是全局变量的问题,就是在你的javascript程序和网页中的所有代码都共享这些变量,他们都住在同一个命名空间里面(全局作用域),所以当程序在执行过程中两个不同部分定义同名但不同作用的全局变量的时候,命名冲突的情况就很常见了(许多小白遇到了就抓不着头脑了:咦,这个命名没问题啊,为什么报错了?)。
而且,网页里面包含有其他不是开发作者写的代码而产生的全局命名问题也是比较常见的。比如说:
1.第三方javascript库
2.甲方(或开发团队自己封装的代码)的脚步代码
3.第三方用户跟踪或分析代码
4.不同类型的UI组件
.....
这些带来的情况就很常见了,比如说,第三方脚本定义了一个变量,叫做userId,接着,你的函数里面也写了个userId的全局变量。这个时候的结果就是,后面的覆盖掉前面的变量,第三方脚本直接就无效了,这种情况是很难调试出来的。
所以,尽可能的少使用全局变量很重要,例如命名空间模式或者函数立即执行,不过要想让全局变量减少,重要的还是多用var来声明变量。
三、忘记var的副作用
隐式全局变量和显式定义的全局变量是有点差异的。
具体如下:
· 通过var创建的全局变量(任何函数之外的程序中创建)是不能被删除的。
· 没有通过var创建的隐式全局变量(无视是否在函数中创建)是能被删除的。
所以隐式全局变量并不是真正的全局变量,但它们是全局对象的属性。
属性是可以通过delete操作符删除的,而变量是不能的,具体的代码我这里就不说了。
四、访问全局对象
在浏览器中,全局对象可以通过window属性在代码任何地方访问(除非说你做了一些很超乎想象的事情,比如说声明了一个名为window的局部变量)。
但是在其他环境下,这个方便的属性可能被叫做其他什么东西(甚至在程序中不可用)。
如果你需要在没有硬编码的window标识符下访问全局对象,你可以在任何层级的函数作用域中做如下操作:
版权所有:搜学搜课(www.soxsok.com)