10 个十分难得的 javascript 开发经验

 

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/432768.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

简单的UTF8编码生成

用记事本建一个文件,用editplus打开,并转成UTF8格式 然后写中文字符 然后用ultraEdit打开,切换到16机制模式即可

android unzip file,Unzip File in Android Assets

可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):问题:I put a zip file in the android assets. How do i extract the file in the android internal storage? I know how to get the file, but i dont know how t…

Eclipse安装ADT失败解决办法

Eclipse的版本是3.5.2,配置Android的开发环境时遇到问题…… 按照Android官方文档一步步安装,到了安装Eclipse的ADT插件时,提示“requires org.eclipse.gef 0.0.0 but it could not be found” 缺少GEF,Eclipses Graphic Editing …

DM3730 LCD控制器驱动框架

一般来说,linux的LCD控制器驱动是分两个层次 1) fbmem.c 一个linux内核通用的LCD控制器层,没有任何硬件信息,而且不创建设备文件。 它提供的最重要的接口函数是register_framebuffer 2) 特定芯片的LCD控制器硬件驱动代码,他来调…

html仿qq最小化怎么实现,JS仿QQ好友列表展开、收缩功能(第一篇)

JS仿QQ好友列表展开、收缩功能(第一篇)发布时间:2020-10-17 14:20:03来源:脚本之家阅读:96作者:erdouzhang效果图如下所示:html:我的好友张三李四...企业好友小明小红...黑名单哈哈...css:ul,h3 {padding: …

Visual Studio 选择相同变量高亮

前段时间一直在使用matlab,今天需要使用vs2008,而用惯了matlab,习惯了其中一项选中变量高亮的设置,突然回来使用VS,感到各种不适应,顿时想到了一个词:矫情 呵呵,于是在网上找各种插件…

V210调整根分区大小

1. 修改uboot common/mmc_cmd_fdisk.c #define SYSTEM_PART_SIZE (120*1024*1024) 将120改成256 2. 在dd文件系统的时候,增大count dd if/dev/zero ofrootfs_qt4.ext3 bs1024 count262144 重烧系统的时候,需要先烧入uboot,然后重启再烧入…

html中怎么写jq,用jQuery替换HTML页面中的文本

如何替换jQuery中的任何字符串?假设我有一个字符串"-9o0-9909",我想用另一个字符串替换它。在问问题之前如何使用jQuery将HTML块替换为HTML块的可能重复,最好检查一下系统在输入问题标题时提出的自动建议您能否详细说明为什么您认为…

asp.net使用post方式action到另一个页面,在另一个页面接受form表单的值!(报错,已解决!)...

asp.net使用post方式action到另一个页面,在另一个页面接受form表单的值!(报错,已解决!) 原文:asp.net使用post方式action到另一个页面,在另一个页面接受form表单的值!(报…

Qt中translate、tr关系 与中文问题

Qt中translate、tr关系 与中文问题2010-09-22 00:15题外话:何时使用 tr ? 在论坛中漂,经常遇到有人遇到tr相关的问题。用tr的有两类人: (1)因为发现中文老出问题,然后搜索,发现很多人用tr,于是他…

html打印边距影响内容大小,关于web打印的问题,如何控制纸张大小和页边距

关于这个问题我上网查了很多资料,最后参照一个资料。编写了下面内容:但是根本达不到要求,哪位大侠有真正使用的经验?告诉我到底应该怎样弄?求一个真正使用的方法,谢谢!再就是这一行在visual stu…

win32控制台

可回显的调用方法: 这个方法步骤比较复杂,是通过创建一个新进程来模拟cmd命令行,将写命令行和回显通过管道的方式呈现。 例如: view plain 1. void CTestMFCDlg::OnOK() 2. { 3. // TODO: Add extra validation …

html是前段还是后端,javascript属于前端还是后端?

JavaScript是一种属于网络的脚本语言,已经被广泛用于Web应用开发,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果。通常JavaScript脚本是通过嵌入在HTML中来实现自身的功能的。前端开发和后端开发的区别在于&#xff1a…

ubuntu12.04中shell脚本无法使用source的原因及解决方法

现象: shell脚本中source aaa.sh时提示 source: not found 原因: ls -l which sh 提示/bin/sh -> dash 这说明是用dash来进行解析的。 改回方法: 命令行执行:sudo dpkg-reconfigure dash 在界面中选择no 再ls -l which sh 提…

2021年河北省高考成绩录取查询结果,2021年河北高考一本录取结果查询和录取通知书发放时间...

河北高考一本录取结果查询和录取通知书发放时间从河北教育考试院获悉,河北高考成绩查询时间已经确定。同时,考生、家长关心的各批次录取时间也已出炉。其中,本科一批高等学校录取时间安排如下:本科一批第一志愿录取结束时间为7月1…

viewgroup 渲染过程

参考 http://blog.csdn.net/luoshengyang/article/details/8372924 总体步骤 performTraversals-->measure---->layout----->draw 测量布局渲染 1.measure 测量过程 例子:FrameLayout measure 测量开始判读是否需要测量 onMeasure 求实际宽度 measureChi…

C++读取ini文件的类

C读取ini文件的类 取自:http://www.viksoe.dk/code/all_mfc.htm,里面有各种MFC常用的类 // Ini.h: interface for the CIni class. // // Written by Bjarke Viksoe (bjarkeviksoe.dk) // Copyright (c) 2000. // // This code may be used in compiled …

A20(emmc) 编译环境

1. 需要物理内存3G,或者调高虚拟内存,否则编译会报错(killed) 2. 安装jdk 3. apt-get install bison apt-get install flex apt-get install gperf apt-get install libswitch-perl apt-get install libxml2-utils

Linux查看设置系统时区

关于时区的概念,其实初中地理课已经涉及,很多人都多少了解一些,可能只是细节搞不太清楚。为什么会将地球分为不同时区呢?因为地球总是自西向东自转,东边总比西边先看到太阳,东边的时间也总比西边的早。东边…

SQL基础问题整理

在程序中,数据库操作是必不可少的部分,所以我们要备足数据库相关知识才能去应付程序中出现的种种问题。基于此,我特地在国外网站、博客上整理了一些问题,并附带了答案和解释、参考。为了保证“原汁原味”,我就保留了英…