chapter1 基本格式
- 缩进
> tab or 2空格
or 4空格
chapter2 注释
- 单行注释
- 语句结尾
> 语句记得加";"
> json 对象最后不要加 ","
- 行的长度
> 80字符
> 超过了就换行, 记得空两个缩进
- 空行
> 在方法前+
空行
> 在方法中局部变量和第一条语句前+
空行
> 多行或单行注释前+空行
> 在逻辑判断片段前+, 如 if, switch, while, for, try
- 命名
> 驼峰
命名
>> 尽量动词开头: get, set, is, can, has...
> 常量命名
>> 用大写+下划线 :
1
|
var
MAX_COUNT = 10;
|
> 构造函数
命名
>> 大写字母开头 :
1
|
var
p =
new
Person(
"haili"
);
|
- 直接量: [字符串, 数字, undefined, null, 布尔值]
> 字符串
>> jquery 规范都用双引号, 所以尽量用双引号, (拼接html代码时可以用单引号)
> null
>> 好的写法: 1. 初始化变量, 2. 检查变量是否为null
>> 不好的
写
法: 1. 检查是否传入了参数
> 直接量
>> 好的写法:
1
2
|
var
object = {};
// 创建对象
var
array = [];
// 创建数组
|
>> 不好的
写
法:
1
2
|
var
object =
new
Obejct();
// 创建对象
var
array =
new
Array(
"1"
);
// 创建数组
|
chapter2 注释
- 单行注释
> 句尾的注释的//之前和之后都加空格 :
1
|
var
a = 1;
// 两个空格
|
- 多行注释
> 和java 一样
- 使用注释
> 在关键的需要提示的地方加注释就好....
chapter3 语句和表达式
- 花括号
- 花括号
> 不能省花括号
> 左( 前和 右) 后加空格:
1
|
if
(
true
) {}
// 两个空格
|
- with
> 不要用with,
不要用with,
不要用with!
- for
> [数组]用 for (i=0, len=5; i<len; i++) {} // i, len 在外面定义
> [对象]用 for (prop in object) {} // prop 在外面定义
>> 记得加
hasOwnPorperty() :
1
2
3
4
5
6
|
for
(prop
in
object) {
if
(object.hasOwnPorperty(prop)) {
// 不加可能会遍历到原型继承来的属性
...
}
}
|
chapter4 变量, 函数, 运算符
- 变量声明
- 变量声明
> 使用单 var
> 在函数内部任意地方定义变量和在函数顶部声明是完全一样的, 这和js引擎解析的方式一样, 因此, 变量应该定义在函数顶部:
1
2
3
4
5
6
7
|
function
doSth() {
var
i, len;
// 单var, 变量声明空一行
for
(i=0, len=10; i < len; i++) {
...
// 回想 hasOwnPorperty() 在遍历对象时要加上
}
}
|
- 函数声明
> 函数声明写在调用函数的语句前
> 函数名后左(前
不加空格, 右) 后加空格
1
2
|
function
doSth(param) {...}
// 好的写法
function
doSth (param) {...}
// 不好的写法(多了个空格), 看起来像语句块
|
- 相等
> 用 === 和 !== , 不要用 == 和 != (后者会自动转化类型)
> 不要用eval(),
不要用eval(),
不要用eval(), 有安全漏洞
> 解析json 请用 JSON 对象, ie 要引个包
1
2
|
var
jsonObj = JSON.stringify(jsonString);
var
jsonString= JSON.parse(jsonObj);
|
> setTimeout() 和 setInterval() 不要用 字符串, 会调用eval()
1
2
3
4
|
setTimeout(
"doSth()"
,100);
// 不好的写法
setTimeout(
function
() {
// 好的写法
doSth();
}, 100);
|
> 仅仅在ajax解析返回值时可以用eval()