计划

  • 抛出自定义错误

基础

基本的格式化

  • 统一缩进
    • 使用Tab或者几个空格字符代表缩进,但是选择一种统一的
  • 使用分号结尾
  • 行的长度 80字符以内,长符号用“+”分割
  • 换行缩进 (即换行第二行两个缩进比较清晰)
  • 添加空行,提高可读性
  • 变量命名
    • 驼峰命名
    • 变量名,使用驼峰
      • 变量前缀应当是名词。
      • 函数前缀应当是动词,一般常用的约定,can,has,is,get,set
    • 常亮 的命名方式
    • 构造函数 以大写开头的函数名
  • 直接量
    • 数字
    • null使用场景?当做占位符
      • 初始化可能赋值对象的变量

    • undefined
  1. //
  2. var found = true;
  3. // 不好的命名,看起来像函数
  4. var isFound = true;
  5. // 常量
  6. var MAX_COUNT = 10;
  7. // null的好用法
  8. var person = null;
  9. function getPerson(){
  10. if(condition){
  11. return new Person("Nicholas)
  12. } else {
  13. return null;
  14. }
  15. }
  16. // null的好用法
  17. ver person = getPerson()
  18. if(person !== null){
  19. doSomething();
  20. }

注释

2.1 单行注释

2.2 多行注释

2.3 使用注释的场景

  • 难于理解的代码
  • 可能被误认为错误的代码
  • 浏览器特性 hack
  • 文档注释

Added

  • 特定的业务逻辑

语句和表达式

2.1 花括号对其方式

2.2 块语句间隔

2.3 switch语句

  • 缩进
  • 连续执行
  • default

for in

变量,函数和运算符

编程实践

避免空比较

各种检测,检测原始值,引用值,函数的方法

将配置数据从代码中分离出来

配置数据是应用中写死(hardcoded)的值。

  • URL
  • 需要展示给用户的字符串
  • 重复的值
  • 设置(比如每页的配置项)
  • 任何可能发生变更的值
  1. function validate(value) {
  2. if(!value){
  3. alert("Invalid value");
  4. location.href = "/errors/invalid.php"
  5. }
  6. }
  7. // 抽离配置数据
  8. var config = {
  9. MSG_INVALID_VALUE: 'Invalid value',
  10. URL_INVALID: '/errors/invalid.php
  11. }

配置数据最好放在单独的文件中,以便清晰地分离数据和应用逻辑。

抛出自定义错误 TODO

自动化

文件和目录结构