你需要知道的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 相关文章推荐
window.open的功能全解析
Oct 10 Javascript
不间断滚动JS打包类,基本可以实现所有的滚动效果,太强了
Dec 08 Javascript
JSON扫盲帖 JSON.as类教程
Feb 16 Javascript
ExtJs3.0中Store添加 baseParams 的Bug
Mar 10 Javascript
IE6图片加载的一个BUG解决方法
Jul 13 Javascript
简单常用的幻灯片播放实现代码
Sep 25 Javascript
深入分析原生JavaScript事件
Dec 29 Javascript
javascript基础知识分享之类与函数化
Feb 13 Javascript
Vuejs第九篇之组件作用域及props数据传递实例详解
Sep 05 Javascript
页面缩放兼容性处理方法(zoom,Firefox火狐浏览器)
Aug 29 Javascript
JavaScript判断数据类型有几种方法及区别介绍
Sep 02 Javascript
基于vue-simple-uploader封装文件分片上传、秒传及断点续传的全局上传插件功能
Feb 23 Vue.js
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 PDO函数库详解
2010/04/27 PHP
并发下常见的加锁及锁的PHP具体实现代码
2010/10/12 PHP
PHP CodeIgniter框架的工作原理研究
2015/03/30 PHP
thinkphp下MySQL数据库读写分离代码剖析
2017/04/18 PHP
利用php + Laravel如何实现部署自动化详解
2017/10/11 PHP
Yii 访问 Gii(脚手架)时出现 403 错误
2018/06/06 PHP
laravel-admin select框默认选中的方法
2019/10/03 PHP
PHP架构及原理知识点详解
2019/12/22 PHP
tp5.1 框架路由操作-URL生成实例分析
2020/05/26 PHP
jquery ajax 登录验证实现代码
2009/09/23 Javascript
对字符串进行HTML编码和解码的JavaScript函数
2010/02/01 Javascript
jquery移除、绑定、触发元素事件使用示例详解
2014/04/10 Javascript
jQuery的deferred对象详解
2014/11/12 Javascript
JavaScript中的Object对象学习教程
2016/05/20 Javascript
js调用父框架函数与弹窗调用父页面函数的简单方法
2016/11/01 Javascript
vue学习笔记之v-if和v-show的区别
2017/09/20 Javascript
Dropify.js图片宽高自适应的方法
2017/11/27 Javascript
vue select二级联动第二级默认选中第一个option值的实例
2018/01/10 Javascript
使用vue-router完成简单导航功能【推荐】
2018/06/28 Javascript
如何换个角度使用VUE过滤器详解
2019/09/11 Javascript
不刷新网页就能链接新的js文件方法总结
2020/03/01 Javascript
vue中用 async/await 来处理异步操作
2020/07/18 Javascript
深入Python函数编程的一些特性
2015/04/13 Python
python保存数据到本地文件的方法
2018/06/23 Python
Python实现基于PIL和tesseract的验证码识别功能示例
2018/07/11 Python
python文字和unicode/ascll相互转换函数及简单加密解密实现代码
2019/08/12 Python
Python imageio读取视频并进行编解码详解
2019/12/10 Python
美国Randolph太阳镜官网:美国制造的飞行员太阳镜和射击眼镜
2018/06/15 全球购物
财务管理专业自荐书
2014/09/02 职场文书
2014年学校办公室工作总结
2014/12/19 职场文书
学生检讨书怎么写
2015/05/07 职场文书
搞笑婚庆主持词
2015/06/29 职场文书
Python如何配置环境变量详解
2021/05/18 Python
使用php的mail()函数实现发送邮件功能
2021/06/03 PHP
在Centos 8.0中安装Redis服务器的教程详解
2022/03/21 Redis
六个好看实用的 HTML + CSS 后台登录入口页面
2022/04/28 HTML / CSS