JavaScript 作为一门编程语言,在语法上可谓是最为灵活的语言了。尽管现在JavaScript规范已经相当成熟,利用JSlist能够解决大部分问题,但是随着现在Node的流行,带来了一些新的变化,这些是需要我们注意的。
编码规范(摘自深入浅出node.js)
1.1 空格与格式
1. 缩进:采用两个空格缩进,而不是tab缩进
2. 变量声明:永远用 var 声明变量,不加 var 时会将其变成全局变量,这样可能会意外污染上下文,或是被意外污染。在ES5的strict模式下,未声明的变量将会直接抛出 ReferenceError 异常
3. 空格:在操作符前后需要加空格,比如+、-、*、% 、= 等操作符前后都应该存在一个空格
4. 单双引号的使用:由于双引号在别的场景下使用较多,
在Node中使用字符串是尽量使用单引号,这样无需转义 如:var html = '<a href="http://cnodejs.org">CNode</a>'
在Json中,严格的规范是要求字符串用双引号,内容中出现双引号时,需要转义
5. 大括号的位置:一般大括号无需另起一行
示例:if (true) {
......
}
6. 逗号:逗号用于变量声明的分割或是元素的分割。如果都好不在行结尾,后面需要一个空格。此外,逗号不允许出现在行首
7. 分号:给表达式结尾加上分号。尽管JavaScript编译器会自动给行尾加分号,但还是会带来一些误解,所以添加上分号有助于避免误会
1.2 命名规范
1. 变量命名:变量命名都采用小驼峰式命名,即除了第一个字母不大写外,每个单词的首字母都大写,词与词之间没有任何符
号,如:
var adminUser = {};
2. 方法命名:方法命名与变量命名一样,采用小驼峰式命名。与变量不同的是,方法名尽量采用动词或判断性词汇,如:
var getUser = function () {};
3. 类命名:类名采用大驼峰式命名,即所有单词的首字母都大写,如,
function User {}
4. 常量命名:作为常量时,单词的所有字母都大写,并用下划线分割,如:
var User_Name = "xp";
5. 文件命名:命名文件时,请尽量采用下划线分割单词,比如 child_details.js
6. 包名:也许你有贡献模块并将其打包发布到NPM上。在包名中,尽量不要包含js 或 node 的字样,它是重复的。包名应适
当短且有意义
1.3 比较操作
在比较操作中,如果是无容忍的场景,请尽量使用 === 代替 ==,否则你会遇到下面这样不符合逻辑的结果
'0' == 0; //true
'' == 0 //true
'0' === '' //false
1.4 字面量
请尽量使用{ }、[] 代替 new Object()、new Array(),不要使用 string、bool、number 对象类型,即不要调用
new String、new Boolean 和 new Number
1.5 作用域
在JavaScript中,需要注意一个关键字和一个方法,他们是with 和 eval(),容易引起作用域混乱。
1. 慎用 with
示例
with (obj) {
foo = bar;
}
它的结果有可能是如下四种之一 :
obj.foo = obj.bar; obj.foo = bar; foo=bar; foo = obj.bar;
这些结果取决于它的作用域。如果作用域链上没有导致冲突的变量存在,使用它则是安全的。但在多人合作的项目中,这并不容易保证,所以要慎用 with。
2. 慎用 eval()
慎用eval() 的原因与with相同。如果不影响作用域上已存在的变量,用它是安全的
本文章会不断持续更新,欢迎小伙伴们留言讨论,如有不足之处,请大家多指教,不胜感激