本文为《编写可维护的JavaScript》读书笔记
1、变量
变量名遵守驼峰大小写命名法
命名前缀可为名词,这样可与函数名区分
常量利用大写字母和下划线(用来分隔单词)来命名
所有变量声明放在函数顶部
函数顶部使用单var语句声明变量, 不同变量之间使用 "," 分隔开
2、函数
先声明函数然后使用函数
-
函数调用写法推荐:
doSomthing(); //在函数名和左括号之间没有空格,与块语句区分开来
-
立即执行函数
var value = (function(){...})(); //将函数用一对圆括号包裹起来,增强代码的可读性
3、null
-
适用场景:
初始化变量,它可能赋值为一个对象
用来与已经初始化的变量(可以是也可以不是一个对象)比较
当函数的参数期望是对象时,用作参数传入
函数返回值为对象时,用作返回值传出
-
不适用场景
不要用
null
来检测是否传入某个参数不要用
null
来检测一个未初始化的变量
4、undefined
(被初始化变量的初始值,表示这个变量等待被赋值)
避免使用
undefined
变量为声明,可将其赋值为
null
5、注释
注释与语句不在同一行时,注释之前需要空行
在同一行,注释和代码之间需要空行
-
添加注释的原则:
难于理解
代码看上去有错误,实际没有
浏览器特性hack时(例如,原生js绑定事件)
关于注释,推荐使用插件
DocBlockr
6、语句
不论块语句包含多行代码还是单行代码,都应当是使用花括号
-
块语句包括:
if
for
while
do...while
try...catch...finally
-
块语句间隔风格推荐:
if (condition) {} //在括左圆括号之前和右圆括号之后各添加一个空格
7、case语句的连续执行问题(在switch语句中执行完一个case之后继续执行下一个case):
switch (condition) {
case "first":
case "second":
//代码
break;
default:
//代码
}
case连续执行可以有意为之,但是需要添加注释
8、with:禁止使用
9、for
循环注意事项:尽可能避免使用continue
10、for-in
循环
不仅遍历对象的实例属性,而且遍历从原型继承过来的属性
最好使用
hasOwnProperty
来为for-in
循环过滤出实例属性禁止用来遍历数组成员
11、严格模式
不推荐在全局作用域内使用。如果团队成员文件合并,可能会让团队其他成员的代码报错
推荐函数内部,即布局作用域内使用
12、相等
两个等号判断相等,容易出现强制类型转换
推荐使用三个等于号用来判断相等
13、原始包装类型
`var name = new String('Nicholas');`
避免使用
参考资料:《编写可维护的JavaScript》
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。