第一章 代码基本的格式化

  • A+
所属分类:Web前端
摘要

制表符缩进优点:制表符和缩进层级之间是一对一的关系文本编辑器可以配置制表符的展现长度(通常是一个制表符长度相当于4个字符)


基本的格式化

第一章 基本的格式化

缩进层级

  • 制表符缩进

    优点:

    制表符和缩进层级之间是一对一的关系

    文本编辑器可以配置制表符的展现长度(通常是一个制表符长度相当于4个字符)

    缺点:

    系统对制表符的解释不一致,导致代码展现不统一

  • 空格缩进

    一般有三种 2 / 4 / 8

    一般推荐为 4

语句结尾

  • 语句一定要以;结尾,不要依赖ASI(Automatic Semicolon Insertion)自动插入分号

行的长度

  • 推荐长度不超过80个字符

换行

  • 在运算符后换行(当有一个运算符在行尾的话,ASI就不会自动插入;)

  • 第二行追加4 / 2个缩进(缩进为4)

// 好的做法 say("测试一下个",element , window, "some string value", 		123) 

这里的,也是运算符,应该在前一行的行尾

规则例外

当给变量赋值时,第二行的位置应当和赋值运算符位置保持对齐

var result = something + otherInfo + '这个晒撒很啊是激动啊' + '睡觉啊快点撒啊大姐' +    			 someResult 

命名

计算机科学只存在两个难题:缓存失效和命名 ----Phil Karlton

  • 小驼峰式大小写命名法(首字母小写, 后面每个单词首字母大写)

  • 匈牙利命名法(名字之前冠以类型标识符前缀),2000年盛行, 现在已经少见了

    sName: s(String) + Name(变量意思)

    iCount: i(Integer) + Count(变量意思)

变量与函数

  • 变量名名词作为前缀,可以和函数作为区分

  • 函数名动词作为前缀

  • 尽量短,并抓住要点

常用的约定
动词 含义
can 函数返回一个布尔值
has 函数返回一个布尔值
is 函数返回一个布尔值
get 函数返回一个非布尔值
set 函数用来保存一个值

常量

  • 大写字母 + 下划线(MAX_COUNT)

构造函数

  • 大驼峰式大小写命名法(每个单词首字母大写)

直接量

JavaScript中包含一些类型的原始值:字符串, 数字, 布尔值, null, undefined.同样还包含数组自接量和对象直接量

字符串

//合法 var name = "say "hello"";  //合法 var name = 'say "hello"'; 
字符串换行
  • 不推荐的写法

    var longString = "我哇就懂啊啥决定洒进你说地啊几哦的觉 送到家奇偶的撒娇哦多少级哦啊家的  啊圣诞节哦俺家大宋 撒娇哦多久哦" 
  • 推荐的写法

    var longString = "我哇就懂啊啥决定洒进你说地啊几哦的觉 送到家奇偶的撒娇哦多少级哦啊家的" +   				 "啊圣诞节哦俺家大宋 撒娇哦多久哦" 
  • 新的写法,模板字符串(还可以使用${}插入变量)

    var longString = `我哇就懂啊啥决定洒进你说地啊几哦的觉 送到家奇偶的撒娇哦多少级哦啊家的id还得hi 多 啊圣诞节哦俺家大宋 撒娇哦多久哦`; 

数字

// 整数写法 var count = 10;  // 小数 var price = 10.0; var price = 10.00;  //  不推荐的小数写法: 没有小数部分 var price = 10; //  不推荐的小数写法: 没有整数部分 var price = .1;  // 不推荐的写法: 八进制写法已经被弃用了 var num = 010;   // 十六进制 var num = 0xA2;  // 科学计数法 var num = 1e23  

null

null 是一个特殊值,但是我们常常误解它, 将它和undefined搞混.

下面的这些场景中我们应当使用null
  • 用来初始化一个变量, 这个变量可能赋值给一个对象
  • 用来和一个已经初始化的变量比较, 这个变量可以是也可以不是一个对象
  • 当函数的参数期望是对象时, 用作参数传入
  • 当函数返回值期望是对象时,用作返回值传出
下面的这些场景中我们不应当使用null
  • 不要使用null来检测是否传入了某个参数
  • 不要用null来检测一个未初始化的变量

理解null最好的方式将它当做对象的占位符(placeholder)

undefined

undefined是一个特殊值,我们常常将它和null搞混.其中一个颇为让人困惑之处在于null == undifined结果为true.然而这两个值的用途却各有不同.那些没有被初始化的变量都有一个初始值,即undefined,表示这个变量等待被赋值

// 不好的写法 var person; console.log(person === undefined)   // true   // 好的做法 var person = null;  console.log(person === null)   // true 

对象直接量

// 不好的写法 var book = new Object(); book.title = "测试"; book.author = "韩梅梅";  // 好的写法 var book = {     title : "测试",     author: "韩梅梅" } 

数组直接量

// 不好得写法 var book = new Array(1,2,3,4,5);  // 好的写法 var book = [1,2,3,4,5];