`
SophiaHzy
  • 浏览: 12197 次
  • 性别: Icon_minigender_2
  • 来自: 武汉
社区版块
存档分类
最新评论

JavaScript编码规范

阅读更多

JavaScript 编码规范

 

javaScript 编码规范,其中大量遵循规范来自 GoogleJs 规范、老道的蝴蝶书以及日常编码习惯。

主要有两部分组成:一:编码规范(即默认遵守写法);二:遵循原则(使代码更健壮的推荐写 法)。

 

 

以下,我将带领大家一起看看作为前端 JS 开发人员,在平日的代码书写中应如何写出更规范的 code

 

 

JavaScript编码规范

 

JavaScript

JavaScript 程序应独立保存在后缀名为.js 的文件中。

HTML 中的 JavaScript 代码会明显增加文件大小,而且也不能对其进行缓存和压缩。 应尽量放到</body>之前。这样可以减少因为载入 script 而造成其他页面内容载入也被延迟的问 题。也没有必要使用 language 或者 type 属性,MIME 类型是由服务器而非 script 标签来决 定的。

 

 

缩进

 

缩进的单位为两个空格。禁止使用 Tab 键来缩进,因各语言没有统一 Tab 长短标准。 每行长度
避免超过 80 个字符。当一条语句一行写不下时,请考虑折行。
表达式语句在逗号后换行。可减少因复制粘贴产生的错误被分号掩盖的几率。同时下一行应该 缩进两个个空格。

 

注释

不要吝啬注释。给以后需要理解你的代码的人(或许就是你自己)留下信息是非常有用的。
注释应和所注释的代码一样是书写良好且清晰明了。
需及时更新注释。错误的注释会让程序更加难以阅读和理解。
让注释有意义。重点在解释那些不容易立即明白的逻辑上,不要留下无意义的注释,如: i=0;//使 i 等于 0

使用单行注释。块注释用于注释正式文档和无用代码。
注释规范:文档注释遵循
YUIDoc 规范(http://yui.github.io/yuidoc/syntax/),所有的文件、类、 方法和属性都应该用合适的标记和类型进行注释。

 

 

声明

所有的变量必须在使用前进行声明,标明注释。函数也应该。

使用多 var 模式声明变量(易维护,如删除时直接删除整行)。项目组自定。 减少全局变量的使用。不要让局部变量覆盖全局变量。

 

命名

变量名应由 26 个大小写字母(A..Z,a..z),10 个数字(0..9),_(下划线)组成。 不要把_(下划线)作为变量开头,推荐(匈牙利命名法)前缀+含义单词
如:
sName nPage bChecked aList rEmail fInint oDate。变量首字母为变量的数据 类型,如 string,number,boolean...。项目组自定。
全局变量:g 开头 gUserName。项目组自定。
常量:全部大写。
私有成员变量和方法命名以下划线开头,如:var _company
函数:使用动词或动词【+名词】形式,如 getVersion(),submitForm()
必须与 new 共同使用的构造函数名时应以大写字母开头。

 

语句

 

简单语句:

每行只放 1 条语句,且以分号结束。 复合语句: 复合语句是被包含在{}的语句序列。 被括起的语句必须多缩进两个空格; {应在复合语句其实行的结尾处;

}应与{的那一行的开头对齐。
大括号应该在所有复合语句中使用,即使只有一条语句。当它们是控制结构的一部分时,比如 一个 if 或者 for 语句。这样做可以避免以后添加语句时造成的错误。

 

return 语句:
一条有返回值的 return 语句不要使用( )来括住返回值。如返回表达式,则应与 return 在 同一行,以避免误加分号错误。

 

if 语句:

if (condition) { statements;
}else if (condition) {

statements; }else { statements; }

其中,表达式推荐常量在左(变量在右)进行判断。if('0'== a)防止缺少等号的笔误,如写 成 if(a='0')不会报错。如常量在左,写成:if('0'=a)则会抛出错误:Uncaught

ReferenceError:Invalid left-hand side in assignment

 

while 语句:

 

do-while 语句:

不像别的复合语句,do 语句总是以;(分号)结尾。

 

switch 语句:
case default 后,都需有 break/return throw

 

空格

空格应在以下情况时使用:
跟在((左括号)后面的关键字应被一个空格隔开;
函数参数与((左括号)之间不应该有空格。这能帮助区分关键字和函数调用;
所有的二元操作符除了.([应用空格将其与操作数隔开;
一元操作符与其操作数之间不应有空格,除非操作符是个单词,比如 typeof; 每个在控制部分,比如 for 语句中的;后须跟一个空格;
每个,后应跟一个空格。

 

空行

while (condition){ statements;
}

do {
statements;
} while (condition);

用空行来将逻辑相关的代码块分割开可以提高程序的可读性。

 

for in 语句
遍历对象所有属性名。只用于 object/map/hash 的遍历。

它会遍历出所有从原型链中继承赖的成员属性(并非从 0 length – 1),应该用 hasOwnProperty()排除掉。如

for(name in object){ if(object.hasOwnProperty(name)){ ...//

} }

 

JavaScript遵循原则

 

禁止使用 with 语句
快捷访问对象属性,其结果可能不可预料。还严重影响 js 处理器的速度(因为它阻断了变量名的 作用域绑定)

 

禁止使用 eval
提供了访问 js 编译器的机会,该函数传递字符串给 js 编译器且执行结果。该用法难以阅读且使性 能降低(因为它需运行编译器)

 

禁止使用 void 运算符 接受一个运算数并返回 undefined,无意义且令人困惑。

 

禁止使用 (逗号)操作符 不含特殊场景,如 for();变量定义;参数列表

 

字符串拼接

使用“+”进行字符串多行拼接,不建议使用“\”
因为 MCMAScript 标准不支持“\”拼接方式,并且“\”拼接方式会导致行前的空白被包含在变量中,

会产生奇怪的错误。

 

避免使用括号

对于一元操作符(delete,typeof void),或在某些关键词(return,throw, case,new)之后。不要使用括号。

 

禁止用 new 来实例化基本类型,如:var bTrue=new Boolean(false)
new 创建继承其运算数的原型新对象,继而调用该运算数,且 this 被绑定到全局对象中而不 是新创建的对象。

当函数初始化新成员属性时它将会污染全局变量,没有编译与运行警告,糟糕的用法,避免使 用。

禁止使用保留字 当保留字被用做对象字面量的键值时必须被引号括起来,不能用在点表示法中。

var class; //error object={case:value} //error object={‘case’:value} //ok ...

 

不要在块内声明一个函数

if (x) { function foo() {} }

虽然很多 JS 引擎都支持块内声明函数,但它不属于 ECMAScript 规范。
ECMAScript 只允许在脚本的根语句或函数中声明函数。如果确实需要在块中定义函数,建议使 用函数表达式来初始化变量:
if (x) var foo = function() {} }
更多详情请自行谷哥:命名函数表达式揭秘

 

{}和[]
使用{}代替 new Object()。使用[]代替 new Array()当成员是有序数字时使用数组,当是无规律字符串或其他时使用对象。

 

作用域

JavaScript 中块没有域,只有函数有域。不要使用块,除非在复合语句中。

 

===和!==操作符 使用===和!==。

避免使用==!=操作符。该操作符会进行类型强制转换,其规则繁琐难记。特别是, 不要将==用 于与错值比较(false,null,undefined,“”,0,NaN)
>下列值在布尔表达式中结果为 false:
null

undefined '' //空字符串 0 //数字

 

>而下面的为 true: '0'//字符串
[] //空数组
{} //空对象

 

+ +正负号
+后不应跟上+++(-也是一样),位置不当的空格则可能将+ +变成++,这类错误不易查找,所以 避免该用法,用()圆括号避免。

 

自增/自减 自增(++)和自减(--)运算符,放在变量的前面或后面,返回的值不一样,很容易发生错

误。避免使用。用+=-=代替。 用变量存储数组长度

for(var i=0,max=arr.length;i<max;i+=1),减少遍历次数。

 

使用单引号定义字符串;双引号用于 html 代码。 合理使用闭包
闭包容易导致内存泄露,尤其是使用闭包函数处理 DOM 事件时经常会出现 HTML 元素与闭包函 数的相互引用,从而导致无法释放 HTML 元素和闭包函数的内存(闭包保留了一个指向它封闭作 用域的指针,所以在给 DOM 元素附加闭包时,很可能会产生循环引用)。

 

异常

尽量在可能但不确定出现异常的地方(大量运算,AJAX 请求,数组操作或 DOM 操作等)用 try-catch(e)来抛出异常。代码量大情况下自定义异常抛出错误信息,更有利于错误信息阅 读,且更加通用。

 

 

为了保证代码的质量,方便日后维护。我们提交代码之前都应思考以下几点: * 所有的变量和函数名字是否合理并且易于理解?

 

* 代码是否经过了合理的组织?从头到尾都很流畅吗?
* 所有的依赖都显而易见吗?

* 在那些可能引起混淆的地方都添加了注释吗? 

分享到:
评论

相关推荐

    JavaScript编码规范_V1.00.doc

    JavaScript 编码规范 JavaScript 编码规范是软件开发过程中非常重要的一部分,它对代码的质量和可维护性产生着直接的影响。下面是对 JavaScript 编码规范的详细解释和分析。 缩进 在 JavaScript 编码中,缩进是...

    Google JavaScript 编码规范指南

    Google的JavaScript编码规范指南,作为Google内部及开源项目中的编程标准,旨在提高代码的可读性、可维护性和一致性。遵循这套规范,能够帮助开发者避免常见的编程陷阱,确保团队协作时代码风格统一,提升开发效率。...

    Javascript编码规范

    ### JavaScript编码规范详解 #### 一、概述 随着JavaScript在前端开发领域的广泛应用,代码的一致性和可维护性变得尤为重要。本文档旨在规范商业体系前端JavaScript的编写方式,以确保代码风格统一,便于理解和...

    javascript编码规范

    资源名称:Javascript编码规范   资源截图: 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。

    javascript 编码规范

    ### JavaScript编码规范详解 在软件开发领域,编码规范扮演着至关重要的角色,它不仅能够提升代码的可读性和可维护性,还能够促进团队协作,减少潜在的错误。JavaScript作为前端开发的核心语言,其编码规范尤其重要...

    Google javascript 编码规范指南

    ### Google JavaScript编码规范指南 #### 一、概述 Google JavaScript编码规范指南旨在为开发者提供一套标准的编程准则,帮助提高代码质量与可维护性。本文档详细介绍了在编写JavaScript项目时应该遵循的最佳实践...

    Google Style Guide JavaScript编码规范

    ### Google Style Guide JavaScript编码规范详解 #### 背景 Google Style Guide JavaScript编码规范是一份由Google维护的、详尽的JavaScript编程规范文档。这份文档旨在帮助开发者编写出高质量、可维护性强且易于...

    javascript编码规范--整理版

    JavaScript编码规范是提高代码质量和可维护性的关键,它为开发者提供了一套统一的编写标准。这个规范是基于Sun的Java程序编码规范,但针对JavaScript的特点进行了调整。遵循这些规范,有助于确保代码的清晰性、一致...

    JavaScript程序编码规范.pdf

    ### JavaScript程序编码规范 #### 一、概述 《JavaScript程序编码规范》是一份旨在提高JavaScript代码质量和可维护性的指南。该规范由Douglas Crockford编写,并由cloudwater翻译成中文版。Crockford是一位著名的...

    Javascript编码规范.pdf

    JavaScript编码规范是编程实践中至关重要的一个方面,它旨在提高代码的可读性、可维护性和团队协作效率。以下是对标题和描述中所述知识点的详细解释: 1. **JavaScript 文件引用**: - 将JavaScript代码封装在独立...

    Google JavaScript 编码规范

    Google的JavaScript编码规范是一个被广泛接受和推荐的编码标准,它详细规定了如何编写易于理解和维护的JavaScript代码。下面,我们将详细探讨这一规范中包含的关键知识点。 **JavaScript语言规范:** 1. **变量...

    JavaScript编码规范[文].pdf

    JavaScript编码规范是软件开发中非常重要的一个环节,它旨在提高代码的可读性、可维护性和团队协作效率。本文档详细介绍了JavaScript编程时应遵循的一些基本规则,主要涵盖命名规则,包括类名、方法名、变量名、常量...

    Javascript编码规范.docx

    以下是一些关键的JavaScript编码规范要点: 1. **注释规范**: - 避免无意义的注释,例如在显而易见的代码旁写“初始化变量为零”。好的注释应提供额外的上下文信息,解释代码的目的或复杂逻辑。 - 使用`//`进行...

    JavaScript编码规范.pdf

    JavaScript编码规范是编程实践中为了保持代码的一致性和可读性而设定的一系列规则。这份PDF文档,名为"JavaScript编码规范.pdf",详细列出了不同类型的命名规则,这在编写JavaScript代码时尤其重要,因为良好的命名...

    JavaScript 编码规范

    JavaScript编码规范是编程实践中至关重要的一个方面,它确保了代码的可读性、可维护性和团队协作效率。在Google的许多开源项目中,JavaScript被广泛使用,并且他们有一套详细的编码规范来指导开发者遵循良好的编程...

Global site tag (gtag.js) - Google Analytics