Javascript 的很多扩展的特性是的它变得更加的犀利, 同时也给予程序员机会创建更漂亮并且更让用户喜欢的网站。

尽管很多的开发人员都乐于颂扬 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 关键字问题导致性能问题?

希望大家能够喜欢,谢谢!

转载于:https://www.cnblogs.com/macliu/p/3608668.html

10 个十分难得的 javascript 开发经验相关推荐

  1. 10个强大的Javascript表单验证插件推荐

    创建一个JavaScript表单验证插件,可以说是一个繁琐的过程,涉及到初期设计.开发与测试等等环节.实际上一个优秀的程序员不仅是技术高手,也应该是善假于外物的.本文介绍了10个不错的JavaScri ...

  2. javascript创建类_如何在10分钟内使用JavaScript创建费用管理器

    javascript创建类 by Per Harald Borgen 通过Per Harald Borgen 如何在10分钟内使用JavaScript创建费用管理器 (How to create an ...

  3. 10 个优秀的JavaScript开发框架

    实用的Javascript开发框架 JavaScript基本上是一个面向对象的脚本语言,创建web应用程序和互动网站.Javascript框架也被称为Javascript库.JavaScript框架很 ...

  4. HTML5期末大作业:动物网站设计——宠物狗(10页) HTML+CSS+JavaScript 大学生静态网页设计 dw宠物网页设计 狗狗网页设计html web课程设计网页规划与设计...

    常见网页设计作业题材有 ​​个人. 美食. 公司. 学校. 旅游. 电商. 宠物. 电器. 茶叶. 家居. 酒店. 舞蹈. 动漫. 明星. 服装. 体育. 化妆品. 物流. 环保. 书籍. 婚纱. 游 ...

  5. web期末作业设计网页:动漫网站设计——蜡笔小新(10页) HTML+CSS+JavaScript 学生DW网页设计作业成品 动漫网页设计作业 web网页设计与开发 html实训大作业...

    常见网页设计作业题材有 ​​个人. 美食. 公司. 学校. 旅游. 电商. 宠物. 电器. 茶叶. 家居. 酒店. 舞蹈. 动漫. 明星. 服装. 体育. 化妆品. 物流. 环保. 书籍. 婚纱. 游 ...

  6. web课程设计网页规划与设计—— 中西餐美食餐饮网站(10页面) html+css+javascript网页设计实例...

    web课程设计网页规划与设计-- 中西餐美食餐饮网站HTML(10页面) html+css+javascript网页设计实例 临近期末, 你还在为HTML网页设计结课作业,老师的作业要求感到头大?HT ...

  7. HTML5期末大作业:明星个人介绍网站设计——杨洋(10页) HTML+CSS+JavaScript 个人网页制作 学生个人网页Dreamweaver设计作业 学生HTML个人网页作业作品下载

    HTML5期末大作业:明星个人介绍网站设计--杨洋(10页) HTML+CSS+JavaScript 学生DW网页设计作业成品 web课程设计网页规划与设计 计算机毕设网页设计源码 常见网页设计作业题 ...

  8. 大学生简单个人静态HTML网页设计作品 DIV布局个人介绍网页模板代码 DW学生个人网站制作成品下载 明星个人主页介绍(10页) HTML+CSS+JavaScript

    HTML5期末大作业:个人网站设计--明星个人主页介绍(10页) HTML+CSS+JavaScript 期末作业HTML代码 学生网页课程设计期末作业下载 web网页设计制作成品 大学生毕设网页设计 ...

  9. 学生网站模板:南京旅游网站设计——六朝古都-南京旅游(10页) HTML+CSS+JavaScript 出游旅游主题度假酒店 计划出行网站设计

    HTML5期末大作业:南京旅游网站设计--六朝古都-南京旅游(10页) HTML+CSS+JavaScript 出游旅游主题度假酒店 计划出行网站设计 常见网页设计作业题材有 个人. 美食. 公司. ...

最新文章

  1. 【Dlib】dlib和opencv的互转
  2. 科研经验2:云协作建立实验室工作总结和内部资料共享平台
  3. 控制器中添加DB类才可以操作数据库表中的数据
  4. JVM插码之三:javaagent介绍及javassist介绍
  5. win7 没有microsoft print to pdf_现在还能不能下载到正版WIN 7
  6. SAP UI5 testFLPService - local run will start mock server
  7. dotnet 手工打一个 dotnet tool 包
  8. 基于centos8搭建zookeeper集群
  9. Java并发编程实战~并发容器
  10. SelectSort 选择排序
  11. MyCat分布式数据库集群架构工作笔记0023---高可用_单表存储千万级_海量存储_分表扩展范围约定
  12. 项目支持规划标准文档编写要点
  13. linux 设置端口常用命令
  14. 在ubuntu下安装MonoDevelop
  15. java三级 高级证书6_java web 学习 --第六天(Java三级考试)
  16. 为什么devc调试时循环一下就过去了_SEPCOIII英语研习社(第六十一讲)| 燃气轮机调试...
  17. 二阶系统的性能分析(开环相幅和阶跃响应)——自动控制原理基础补充(三)
  18. uni-app 前后端实战课 - 《悦读》
  19. linux sox录音时间控制,Linux 对音频万能处理的命令——SOX
  20. Docer容器客户端在启动的镜像的时候报错Error invoking remote method ‘docker-start-container‘: Error: (HTTP code 500

热门文章

  1. (转)找回vss超级管理员密码
  2. VMware 报错“Intel VT-x处于禁止状态”
  3. 解决VMware6.5 以上版本安装RHEL 5的自动安装的问题
  4. Javascript玩转Prototype(一)——先谈C#原型模式
  5. mysql 删除记录代码_mysql 删除记录时报错
  6. linux下带密码的scp,linux下带密码的scp
  7. 根据输入的日期计算周次和月份
  8. Unhandled exception: org.springframework.beans.factory.BeanDefinitionStoreException
  9. mongoose日期 时间 范围查询
  10. mysql master host_mysql异步备份的有关问题,MASTER_HOST可否指定多个