【读书笔记】:《编写可维护的JavaScript》第01章 基本的格式化

第01章 基本的格式化

1.1缩进层级

缩进要统一
使用4个空格或一个Tap键(也要设置成4个空格大小)来进行缩进

1.2 语句结尾

结尾加分号 不可省略

1.3 行的长度

一行代码的限定长度最好在80(书上)个字符 我自己觉得120个字符差不多

1.4 换行

一行代码限定了最大字符长度时,有时就需要手动将一行转换成两行,
运算符后换行
换行使用两个缩进

1.5 空行

将不同语义的代码用空行将进行分隔,确保有关联的代码展示在一起
下面一些场景也可以使用换行
方法与方法之间
方法中局部变量与第一条语句之间
多行或单行注释之前
在代码内的逻辑片段之间插入空行,提高可读性

1.6 命名

使用驼峰式命名法

1.6.1 变量和函数

变量:驼峰大小写命名法,并使用名词作前缀
函数:驼峰大小写命名法,并使用动词作前缀

var cont = 10;
var myName = "ddd";

function getName(){
    return "name";
}
1.6.2 常量

ECMAScript6之前,JavaScript中并没有真正的常量的概念。
但不影响我们去使用常量
为了和变量区分,常量使用大写字母加下划线来命名

var MAX_NUM = 10;
1.6.3 构造函数

在JavaScript中,构造函数不过是前面冠以new运算符的函数,用来创建对象。
使用大驼峰命名法为构造函数命名。即首字母大写。

function Person(name){
    this.name = name
}

1.7 直接量

1.7.1 字符串

字符串使用双引号或单引号括起来,使用单引号还是双引号并没有什么不同,这一点与PHP程序不同
写一段很长的字符串,需要换行时,可以将字符串分成两段,用“+”进行连接

var loadStr = "物品的天南大活动结束共和附近的三姑也为" + 
"什么情况"
1.7.2 数字

JavaScript中数字类型只有一种,整型和浮点型都存储为相同的数据类型。
在书写小数时,请不要省去小数部分,也不能省去整数部分:

//不推荐使用 没有小数部分
var pice = 10.;
//不推荐使用 没有整数部分
var pice = .11;

不要使用8进制的写法

1.7.3 null

null是一个特殊的值,经常和underfined混淆。
下列场景请使用null:
初始化一个变量,这个变量可以赋值为一个对象
用来和一个已经初始化的变量比较,这个变量可以是也可以不是一个对象。
函数的参数期望是对象时,用作参数转入
当函数的返回值期望是一个对象时,用作返回值传出

下列场景不推荐使用null
不要用null检测是否传入了某个参数
不要用null来检测一个未初始化的变量

// 好的用法  初始化一个变量
var person = null;

// 好的用法  当函数的返回值期望是一个对象时,用作返回值传出
function getPerson(){
    	if(condition){
    		return new Person("Nicholas");
    	}else{
    		return null;
	}
}

// 好的用法  用来和一个已经初始化的变量比较,这个变量可以是也可以不是一个对象。
var person = getPerson();
if(person !== null){
	doSomething();
}

// ======================================================================

// 不好的用法  用来和为初始化的变量比较
var person;
if(person != null){
	doSomething();
}

// 不好的用法  检测是否传入了参数
function doSomething(arg1,arg2,arg3,arg4){
	if(arg4 != null){
		doSomethingElse();
	}
}

理解null的最好办法就是将他当做对象的占位符。

1.7.4 undefined

undefined是一个特殊值,常和null混淆,但二者的用途各不相同。那些没有初始化的变量都有一个初始值,即undefined。表示这个变量等待被赋值。
未赋值的变量和未声明(定义)的变量,使用typeof运算符运算都会返回undefined。

// foo未声明
var person;
console.log(person);	// undefined
console.log(foo);		// undefined

当要声明一个可能为对象的变量时,将其赋值为null。

// 好的用法
var person = null;
console.log(person === null); // true

将变量初始值赋值为null,表明这个变量最终很可能赋值为对象。typeof运算符运算null的类型时返回“Object”,这样就可以和undefined区分开了。

1.7.5 对象直接量

创建对象:将对象的属性用一个花括号括起来

var book = {
    title:"Hello JavaScript",
    author:"myName"
}
1.7.6 数组直接量

和对象直接量类似,数组直接量是JavaScript中定义数组最简洁的一种方式。不赞成显式地使用Array构造函数来创建数组

//不好的写法
var nums = new Array(1,2,3,4);

请直接使用两个方括号将数组初始元素括起来:

//好的写法
var nums = [1,2,3,4];
1.7.7 未初始化的变量和未定义的变量是两个不同概念。
var message; // 这个变量声明之后默认取得了undefined 值
// 下面这个变量并没有声明
// var age
alert(typeof message); // "undefined"
alert(typeof age); // "undefined"

结果表明,对未初始化和未声明的变量执行typeof 操作符都返回了undefined 值。
好的做法:定义变量时始终进行初始化,这样么当typeof 操作符返回"undefined"值时,我们就知道被检测的变量还没有被声明,而不是尚未初始化。
在不知道变量初始化什么值时,可以先用null进行初始化。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值