参考JsLint的文档制定,建议使用JsLint(http://www.jslint.com/ )检查Javascript代码,完整的规范文档:http://www.jslint.com/ 。如有相关意见或建议请 EMAIL:mikecyc@qq.com ,或在 BLOG(http://mikecyc.blogspot.com/ )中留言。
所有代码行都以分号结束
尽管JavaScript确实允许将换行符作为行结束符,但一般认为这种做法是不明确的,而且是不好的编码风格。
使用if和for的语句必须使用大括号把语句块括起来
例:把
if (condition)
statement;
写成
if (condition) {
statements;
}
无效的块定义
不同于其他编程语言,在javascript中,块不会作为变量的作用域。javascript只支持函数级作用域。因此,JSLint只接受作为function、if、switch、while、for、do和try语句一部分的块,其他的块都会标志为错误。
for in 操作
Javascript 的循环会包括prototype里面的内容,需要用下面的方式过滤:
for (name in object) {
if (object.hasOwnProperty(name)) {
//do something here
}
}
Switch 操作
case后面一定要加break, return 或 throw;
变量
变量只能声明一次,而且在使用之前必须先声明。
with 操作
禁止使用with,设置新变量时会产生很大的负作用
=号赋值在条件判断中
一般不推荐=号赋值在条件判断中,如果需要写成这样:
if ((a = b)) {
...
}
== 和 !=
不推荐使用== 和 !=,用===和!==操作符,如果你需要使用这样的条件,用下面的方式:
(foo != 0) 写成 (foo)
(foo == 0) 写成 (!foo)
永远不能执行的代码
把出现在return、break、continue或throw语句后面的代码标志为不可达的代码。这些语句后面必须紧跟着一个结束大括号。
++ 和 --
自增和自减符号是比较不好的代码风格,建议不要使用。
位操作符
Javascript没有直接位操作运算,转换到浮点运算执行,禁止使用位操作符
eval 是恶性操作
eval函数权限太大,必须避免滥用。
对象
Javascript没有真正的对象,有几个地方需要注意:
不能写:new Number, new String, new Boolean
new Object 写成 {}
new Array 写成 []
不安全的字符
下面的字符在各个浏览器不一致,尽量不要使用
\u0000-\u001f
\u007f-\u009f
\u00ad
\u0600-\u0604
\u070f
\u17b4
\u17b5
\u200c-\u200f
\u2028-\u202f
\u2060-\u206f
\ufeff
\ufff0-\uffff
没有评论:
发表评论