第一章 代码基本的格式化
基本的格式化
第一章 基本的格式化
缩进层级
制表符缩进
优点:
制表符和缩进层级之间是一对一的关系
文本编辑器可以配置制表符的展现长度(通常是一个制表符长度相当于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)