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