美文网首页
可维护的JavaScript(一)(0332)

可维护的JavaScript(一)(0332)

作者: Qin0821 | 来源:发表于2018-03-21 21:17 被阅读0次

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

    第一部分: 编程风格

    第一章: 基本的格式化

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

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

    3. null的应用场景:

    • 用来初始化一个变量,这个变量可能赋值为一个对象。
    • 用来和一个已经初始化的变量比较,这个变量可以是也可以不是一个对象。
    • 当函数的参数期望是对象时,用作参数传入。
    • 当函数的返回值期望是对象时,用作返回值传出。
      注意:
    • 不要使用null来检测是否传入了某个参数
    • 不要用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. 由于类型转换的缘故,推荐使用===和!===。用这些操作符作比较不会涉及强制类型转换。

    相关文章

      网友评论

          本文标题:可维护的JavaScript(一)(0332)

          本文链接:https://www.haomeiwen.com/subject/kbypqftx.html