第一章 代码基本的格式化

基本的格式化

第一章 基本的格式化

缩进层级

  • 制表符缩进

    优点:

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

    文本编辑器可以配置制表符的展现长度(通常是一个制表符长度相当于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];
(0)

相关推荐