可维护的JavaScript(一)(0332)

2018-03-21  本文已影响0人  Qin0821

主要从《编写可维护的JavaScript》一书中摘取值得记录的片段。

第一部分: 编程风格

第一章: 基本的格式化

  1. 变量名应当总是遵守驼峰大小写命名法,并且命名前缀应当是名词。以名词作为前缀可以让变量和函数区分开来,因为函数名前缀应当是动词。

  2. 构造函数命名遵照大驼峰命名法(Pascal Case),这样可以将构造函数从变量和普通函数中区分出来。

  3. null的应用场景:

理解null最好的方式是将它当做对象的占位符。

第三章: 语句和表达式

  1. for-in循环是用来遍历对象的,一个常见的错误用法是使用for-in循环来遍历数组成员,入:

var values = [ 1, 2, 3, 4, 5, 6, 7],
i;
for (i in values) {
process(item[i]);
}

记住, for-in循环使用来对实例对象和原型链中的键(key)做遍历的,而不是用来遍历含数字 索引的数组。

第四章: 变量、函数和运算符

  1. 如果将数字和字符串进行比较,字符串会首先转换为数字,然后执行比较:

// 比较数字5和字符串5
console.log(5 == "5"); //true
// 比较数字25和十六进制的字符串25
console.log(25 == "0x19"); //true

  1. 如果一个布尔值和数字比较,布尔值会首先转换为数字,然后进行比较。false -> 0、true -> 1

// 数字1和true
console.log(1 == true); //true
// 数字0和false
console.log(0 == false); //true
// 数字2和true
console.log(2 == true); //false

  1. 如果其中一个值是对象而另一个不是,则会首先调用对象的valueOf()方法,得到原始类型值再进行比较。如果没有定义valueOf(),则调用 toString()。

var object = {
toString: function() {
return "0x19";
}
};
console.log(object == 25); //true

  1. 由于类型转换的缘故,推荐使用===和!===。用这些操作符作比较不会涉及强制类型转换。
上一篇下一篇

猜你喜欢

热点阅读