2

本文为《编写可维护的JavaScript》读书笔记

1、变量

  • 变量名遵守驼峰大小写命名法

  • 命名前缀可为名词,这样可与函数名区分

  • 常量利用大写字母和下划线(用来分隔单词)来命名

  • 所有变量声明放在函数顶部

  • 函数顶部使用单var语句声明变量, 不同变量之间使用 "," 分隔开

2、函数

  • 先声明函数然后使用函数

  • 函数调用写法推荐:

    doSomthing(); //在函数名和左括号之间没有空格,与块语句区分开来

  • 立即执行函数

    var value = (function(){...})(); //将函数用一对圆括号包裹起来,增强代码的可读性

3、null

  1. 适用场景:

    • 初始化变量,它可能赋值为一个对象

    • 用来与已经初始化的变量(可以是也可以不是一个对象)比较

    • 当函数的参数期望是对象时,用作参数传入

    • 函数返回值为对象时,用作返回值传出

  2. 不适用场景

    • 不要用null来检测是否传入某个参数

    • 不要用null来检测一个未初始化的变量

4、undefined(被初始化变量的初始值,表示这个变量等待被赋值)

  • 避免使用undefined

  • 变量为声明,可将其赋值为null

5、注释

  1. 注释与语句不在同一行时,注释之前需要空行

  2. 在同一行,注释和代码之间需要空行

  3. 添加注释的原则:

    • 难于理解

    • 代码看上去有错误,实际没有

    • 浏览器特性hack时(例如,原生js绑定事件)

  4. 关于注释,推荐使用插件DocBlockr

6、语句

  1. 不论块语句包含多行代码还是单行代码,都应当是使用花括号

  2. 块语句包括:

    • if

    • for

    • while

    • do...while

    • try...catch...finally

  3. 块语句间隔风格推荐:

    1. 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》


望舒
2.3k 声望133 粉丝

an unexamined life is a life not worth living