七(七):严格模式
// 严格模式应当仅限在函数内部使用,千万不要在全局使用
//不好的写法:全局使用严格模式
"user strict";
function doSomething() {
//code
}
//好的写法
function doSomething() {
"user strict";
//code
}
// 如果你期望在多个函数中使用严格模式而不需要多次声明"use strict", 可以使用立
// 即被调用的函数
//好的写法
(function() {
"user strict";
function doSomething() {
//code
}
function doSomethingElse() {
//code
}
}());
七(八):赋值
//当给变量赋值时,如果右侧是包含有比较语句的表达式,需要用圆括号包裹
// 好的好法
var flag = (i < count);
//不好的写法:遗漏圆括号
var flag = i < count;
七(九):等号运算符
使用===(严格模式)和!==(严格不相等)代替==(相等)和!=(不等)来避免
弱类型转换错误
//好的好法
var same = (a === b);
//不好的写法:使用==
var same = (a == b);
七(十):三元运算符
//三元运算符应当仅仅用在条件赋值语句中,而不要作为if语句的代替品
//好的写法
var value = condition ?value1 : value2;
//不好的的写法:没有赋值,应当是有if表达式
condition ? doSomething() : doSomethingElse();
七(十一):语句
// 简单语句
// 每一行最多包含一条语句,所有简单的语句都应该以分号(;)结束
//好的写法
count++;
a = b;
//不好的写法:多个表达式写在一行
count++; a = b;
// 返回语句
// 返回语句当返回一个值的时候不应当使用圆括号包裹,除非在某些情况下这么做看
// 以让返回值更容易理解
Example:
return;
return collection.size();
return (size > 0 ? size : defaultSize);
// 复合语句
// 复合语句是大括号括起来的列表 如 if for 等等
// 1.括起来的语句应当较复合语句多缩进一个层级
// 2.开始的大括号应当在复合语句所在行的末尾;结束的大括号应当独占一行且同
// 复合语句的开始保持同样的缩进
// 3.当语句是控制结构的一部分时,诸如:if 或者 for 语句,所有语句都需要用大括
// 号括起来,也包括单个语句。这个约定是的我们更方便地添加语句而不用担心
// 忘记加括号而引起 bug
// 4.像 if 一样的语句开始的关键词,其后应该紧跟一个空格,起始大括号应当在空格之后
// switch 语句
// switch 类的语句应当是如下格式:
switch (expression) {
case expression:
statements
default:
statements
}
// switch 下的每一个 case 都应当保持一个缩进。除第一个之外包括 default 在内的每
// 一个 case 都应当在之前保持一个空行,每一组语句(除了 default)都应当以 break,
// return, throw 结尾,或者用一行注释表示跳过。 如果 default 没有的话,也要加上注释
七(十二):留白
在逻辑相关的代码块之间添加空行可以提高代码的可读性
两行空行仅限在如下情况使用:
1.在不同的源代码文件之间
2.在类和接口定义之间
单行空行仅限在如下情况中使用:
1.方法之间
2.方法中局部变量和第一行语句之间
3,多行或者单行注释之前
4.方法中逻辑代码块之间提升代码的可读性
空格应当在如下情况中使用:
1.关键词后跟括号的情况应当用空格隔开
2.参数列表中逗号之后应保留一个空格
3.所有的除了点之外的二元运算符,其操作都应当用空格隔开。单目
运算符的操作数之间不应该用空格隔开,诸如一元减号,递增++, 递减--
4.for 语句中的表达式之间应用空格隔开
七(十三):需要避免的
1.切勿使用想 Sting 一类的原始包装类型创建新的对象
2.绵绵使用 eval()
3.避免使用 with 语句。该语句在严格模式下不复存在,可能在未来的ECMADScript标准中也将去除