JavaScript编程规范
最近看NodeJS中,有一部分写JS约定俗成的编程规范(附录B,详情参考附件),感觉在实际工作中能用到,
大致意思分享给大家,详情参考附件:
1、缩进:建议两空格 作为Node.js代码的缩进标记;
2、行宽:建议把行宽限制为80个字符;
3、语句分隔符:建议一律使用分号,哪怕一行只有一个语句,也不要省略分号;
4、变量定义:永远使用 var 定义变量,而不要通过赋值隐式定义变量;
5、变量名和属性名:使用小驼峰式命名法(lower camel case)作为所有变量和属性的命名规则,不建议使用任何单字母的变量名;
6、函数:对于一般的函数我们同样使用小驼峰式命名法。但对于对象的构造函数名称(或者不严格地说“类”的名称) ,我们使用大驼峰式命名法(upper camel case) ,也称为Pascal命名法。规定函数名与参数表之间规定无空格,参数表和括号( { 和 } )之间要有一个空格,并且在同一行;
7、引号:建议一律统一为单引号, 因为JSON、 XML都规定了必须是双引号, 这样便于无转义地直接引用;
8、关联数组的初始化:将 var = { 放在一行,下面每行一对键值,保持两空格的缩进,以分号结尾, }; 最后单独另起一行。 对于每对键值, 除非键名之中有空格或者有非法字符, 否则一律不用引号;
9、等号:尽量使用 === 而不是 == 来判断相等,因为 == 包含了隐式类型转换;
10、命名函数:尽量给构造函数和回调函数命名,这样当你在调试的时候可以看见更清晰的调用栈;
11、对象定义:尽量将所有的成员函数通过原型定义,将属性在构造函数内定义,然后对构造函数使用new 关键字创建对象。绝对不要把属性作为原型定义,因为当要定义的属性是一个对象的时候, 不同实例中的属性会指向同一地址。 除非必须, 避免把成员函数定义在构造函数内部,否则会有运行时的闭包开销;
12、 继承:避免使用复杂的继承,如多重继承或深层次的继承树;
PS:附录A中JS的一些特性,讲的不错,有空可以看下。
JavaScript编程规范的更多相关文章
- Dojo Javascript 编程规范(转)
前言 相当不错的 Javascript 编程风格规范,建议大家采用此规范编写 Javascript.原文链接: http://dojotoolkit.org/developer/StyleGuide ...
- 【JavaScript 开发规范】
Javascript 最佳实践http://sofish.de/1171http://sofish.de/1181 总是使用 ‘var’ √ 特性检测而非浏览器检测 √ 使用方括号记法 √ 使用&qu ...
- javascript模块化编程规范
一.javascript模块化编程规范: 二.关于commenjs规范和AMD规范: 根本不同:前者用于服务器端同步加载模块:后者是客户端异步加载模块. 同点:两者都有一个全局函数require(), ...
- Javascript模块化编程-规范[2]
实现Javascript模块化,固然很重要,但是怎样才能实现国际上都能认可的模块化呢?模块化编程规范随应运而生. 目前Javascript模块化规范主要有两种:CommonJS和AMD. Common ...
- 《编写可维护的JavaScript》——JavaScript编码规范(六)
变量.函数和运算符 在讨论过基本的JavaScript书写格式化之后,接下来关注如何使用函数.变量和运算符来减少复杂度和增强可读性就显得十分重要了. 变量声明 变量声明是通过var语句来完成的.var ...
- 《编写可维护的JavaScript》——JavaScript编码规范(五)
语句和表达式 在JavaScript中,诸如if和for之类的语句有两种写法,使用花括号的多行代码或者不使用花括号的单行代码.比如: //不好的写法,尽管这是合法的JavaScript代码 if (c ...
- 《编写可维护的JavaScript》——JavaScript编码规范(一)
缩进层级 代码如何缩进通常有两种主张: 使用制表符缩进 每一个缩进层级都用单独的制表符表示.这种方法的主要缺点是:系统对制表符的解释不一致.这些差异会导致不同的开发者对同一段代码有不同的看法的,这正是 ...
- 异步编程之Javascript Promises 规范介绍
什么是 Promises Promises是一种关于异步编程的规范,目的是将异步处理对象和处理规则进行规范化,为异步编程提供统一接口. 传统的回调函数 说到JavaScript的异步编程处理,通常我们 ...
- Javascript编程风格
Douglas Crockford是Javascript权威,Json格式就是他的发明. 去年11月他有一个演讲(Youtube),谈到了好的Javascript编程风格是什么.我非常推荐这个演讲,它 ...
随机推荐
- SqlServr进程内存使用增长的解决办法
SqlServr进程使用的内存缓慢增长是正常的现象,但在服务器长时间不重启或sql服务不重启的情况下,最终,这个进程会耗尽所有的内存,导致所有终端无法正常与数据库交互. 1.设置数据库最大使用内存的值 ...
- LPC1768之时钟
一锁相环和CPU时钟. CPU时钟=锁相环0输出/CPU时钟配置寄存器的预分频值即:Fcpu=Fcco/CCLKCFG+1.锁相环可以把外部时钟倍频到较高频率,PLL0输出频率是: Fcco = (2 ...
- ylbtech-Recode(记录)-数据库设计
ylbtech-dbs:ylbtech-Recode(记录)-数据库设计 -- =============================================-- DatabaseName ...
- StringIO 模块用于在内存缓冲区中读写数据
模块是用类编写的,只有一个StringIO类,所以它的可用方法都在类中.此类中的大部分函数都与对文件的操作方法类似. 例: #coding=gbk import StringIO s=StringIO ...
- iOS学习笔记总结整理
来源:http://mobile.51cto.com/iphone-386851_all.htm 学习IOS开发这对于一个初学者来说,是一件非常挠头的事情.其实学习IOS开发无外乎平时的积累与总结.下 ...
- sql server 2008 r2 中的oracle发布使用笔记
sql server 2008 r2 中的oracle发布功能,能够将oracle数据库作为发布服务器,将oracle中的数据自动同步到sql server 数据库中,在新建oracle发布前确保sq ...
- nyoj 56-阶乘因式分解(一)
点击打开链接 阶乘因式分解(一) 时间限制:3000 ms | 内存限制:65535 KB 难度:2 描述 给定两个数m,n,其中m是一个素数. 将n(0<=n<=10000)的阶乘分 ...
- [POJ 1155] TELE (树形dp)
题目链接:http://poj.org/problem?id=1155 题目大意:电视台要广播电视节目,要经过中转机构,到观众.从电视台到中转商到观众是一个树形结构,经过一条边需要支付成本.现在给你每 ...
- Java是传值还是传引用
http://www.bccn.net/Article/kfyy/java/jszl/200601/3069.html 对于基本数据类型(整型.浮点型.字符型.布尔型等),传值;对于引用类型(对象.数 ...
- sqlite支持的数据库类型
http://www.sqlite.org/datatype3.html 默认只支持:NULL,INTEGER,REAL,TEXT,BLOB