你需要知道的10个最佳javascript开发实践小结


Posted in Javascript onApril 15, 2012

尽管很多的开发人员都乐于颂扬javascript,但是仍旧有人看到它的阴暗面。

使用很多javascript代码的web页面会加载很慢,过多的使用javascript使得网页丑陋和拖沓。很快如何有效地使用javascript成为一个非常火热的话题。

这里让我们列出10个最佳javascript实践,帮助你有效地使用javascript。

1. 尽可能的保持代码简洁
可能大家都听到过了N遍这个代码简洁问题了。作为一个开发人员你可能在你的代码开发过程中使用了很多次,但千万不要在js开发中忘记这点。

尽量在开发模式中添加注释和空格,这样保持代码的可读性
在发布到产品环境前请将空格和注释都删除,并且尽量缩写变量和方法名
使用第三方工具帮助你实现压缩javascript。
2. 思考后再修改prototypes
添加新的属性到对象prototype中是导致脚本出错的常见原因。

yourObject.prototype.anotherFunction = ‘Hello'; 
yourObject.prototype.anotherMethod = function () { … };

在上面代码中,所有的变量都会被影响,因为他们都继承于"yourObject"。这样的使用会导致意想不到的行为。所以建议在使用完后删除类似的修改。
yourObject.prototype.anotherFunction = ‘Hello'; 
yourObject.prototype.anotherMethod = function () { … }; 
test.anotherMethod(); 
delete yourObject.prototype.anotherFunction = ‘Hello'; 
delete yourObject.prototype.anotherMethod = function () { … };

3. Debug Javascript代码
即使最好的开发人员都会犯错。为了最大化的减少类似错误,请在你的debugger中运行你的代码,确认你没有遇到任何细微的错误

4. 避免Eval
你的JS在没有"eval"方法的时候也可以很好的工作。“eval”允许访问javascript编译器。如果一个字符串作为参数传递到"eval",那么它的结果可以被执行。

这会很大的降低代码的性能。尽量避免在产品环境中使用"eval"。

5. 最小化DOM访问
DOM是最复杂的API,会使得代码执行过程变慢。有时候web页面可能没有加载或者加载不完整。最好避免DOM。

6. 在使用javascript类库之前先学习javascript
互联网充斥着很多的javascript类库,很多程序员都往往使用js类库而不理解负面影响。强烈建议你在使用第三方类库之前学习基本的JS代码,否则,你就准备着倒霉吧。

7. 不要用"SetTimeOut"和"Setinterval"方法来作为"Eval"的备选
setTimeOut( "document.getID('value')", 3000);
在以上代码中 document.getID('value') 在"setTimeOut"方法中被作为字符串来处理。这类似于'eval'方法,在每个代码执行中来执行一个字符串,因此会降低性能,因此,建议在这些方法中传递一个方法。

setTimeOut(yourFunction, 3000);
8. []比"new Array();"更好
一个常犯的错误在于使用当需要数组的时候使用一个对象或者该使用对象的时候使用一个数组。但是使用原则很简单:

“当属性名称是小的连续整数,你应该使用数组。否则,使用一个对象” - Douglas Crockford, JavaScript: Good Parts的作者.

建议:
var a = ['1A','2B'];
避免:

var a = new Array();
a[0] = "1A";
a[1] = "2B";
9. 尽量不要多次使用var
在初始每一个变量的时候,程序员都习惯使用"var"关键字。相反,建议你使用逗号来避免多余的关键字,并且减少代码体积。 如下:

var variableOne = ‘string 1',
variableTwo = ‘string 2',
variableThree = ‘string 3';
10. 不要忽略分号 ";"
这往往是大家花费数个小时进行debug的原因之一。

我很确信你肯定也在其它的文章中阅读过以上相关的内容,但是大家可能往往都忽略了很多基本的规则。你是不是也曾经忽略过分号。是不是也遇到过eval关键字问题导致性能问题?希望大家能够喜欢,谢谢!

Javascript 相关文章推荐
php析构函数的具体用法小结
Mar 11 Javascript
Javascript 实现复制(Copy)动作方法大全
Jun 20 Javascript
JS实现先显示大图后自动收起显示小图的广告代码
Sep 04 Javascript
快速学习AngularJs HTTP响应拦截器
Dec 31 Javascript
WebGL利用FBO完成立方体贴图效果完整实例(附demo源码下载)
Jan 26 Javascript
全面解析JavaScript中apply和call以及bind(推荐)
Jun 15 Javascript
详解Javascript中prototype属性(推荐)
Sep 03 Javascript
Javascript 跨域知识详细介绍
Oct 30 Javascript
js按条件生成随机json:randomjson实现方法
Apr 07 Javascript
JS判断Android、iOS或浏览器的多种方法(四种方法)
Jun 29 Javascript
剖析Angular Component的源码示例
Mar 23 Javascript
vue中img src 动态加载本地json的图片路径写法
Apr 25 Javascript
javascript针对DOM的应用分析(四)
Apr 15 #Javascript
javascript针对DOM的应用分析(三)
Apr 15 #Javascript
javascript针对DOM的应用分析(二)
Apr 15 #Javascript
javascript针对DOM的应用实例(一)
Apr 15 #Javascript
JavaScript中的null和undefined解析
Apr 14 #Javascript
dtree 网页树状菜单及传递对象集合到js内,动态生成节点
Apr 14 #Javascript
jquerymobile checkbox及时刷新才能获取其准确值
Apr 14 #Javascript
You might like
详解PHP实现异步调用的4种方法
2016/03/14 PHP
javascript中callee与caller的用法和应用场景
2010/12/08 Javascript
深入理解Javascript闭包 新手版
2010/12/28 Javascript
javascript 全选与全取消功能的实现代码
2012/12/23 Javascript
js带按钮的提示框可供选择示例代码
2013/09/17 Javascript
jQuery中delegate与on的用法与区别示例介绍
2013/12/20 Javascript
jQuery Easyui学习之datagrid 动态添加、移除editor
2016/01/27 Javascript
页面向下滚动ajax获取数据的实现方法(兼容手机)
2016/05/24 Javascript
AngularJs学习第五篇从Controller控制器谈谈$scope作用域
2016/06/08 Javascript
JS判断是否在微信浏览器打开的简单实例(推荐)
2016/08/24 Javascript
Es6 写的文件import 起来解决方案详解
2016/12/13 Javascript
JS实现的五级联动菜单效果完整实例
2017/02/23 Javascript
详解Node.js中path模块的resolve()和join()方法的区别
2018/10/29 Javascript
详解JS浏览器事件循环机制
2019/03/27 Javascript
Vue分页效果与购物车功能
2019/12/13 Javascript
JS指定音频audio在某个时间点进行播放
2020/11/28 Javascript
[01:33]一分钟玩转DOTA2第三弹:DOTA2&DotA快捷操作大对比
2014/06/04 DOTA
python发送HTTP请求的方法小结
2015/07/08 Python
Python中int()函数的用法浅析
2017/10/17 Python
python中多层嵌套列表的拆分方法
2018/07/02 Python
pytorch 批次遍历数据集打印数据的例子
2019/12/30 Python
tensorflow tf.train.batch之数据批量读取方式
2020/01/20 Python
基于Django signals 信号作用及用法详解
2020/03/28 Python
Python flask框架如何显示图像到web页面
2020/06/03 Python
python用分数表示矩阵的方法实例
2021/01/11 Python
HTML5中原生的右键菜单创建方法
2016/06/28 HTML / CSS
Nili Lotan官网:Nili Lotan同名品牌
2018/01/07 全球购物
Joseph官网:英国小众奢侈品牌
2019/05/17 全球购物
任课老师推荐信范文
2013/11/24 职场文书
大学学习个人的自我评价
2014/02/18 职场文书
社会实践活动总结范文
2014/07/03 职场文书
2014年服务员工作总结
2014/11/18 职场文书
爱护公物主题班会
2015/08/17 职场文书
Vue中使用import进行路由懒加载的原理分析
2022/04/01 Vue.js
在vue中import()语法不能传入变量的问题及解决
2022/04/01 Vue.js
2022微信温控新功能上线
2022/05/09 数码科技