编写可保护的JavaScript--编程作风篇

写在前面

新司机近来读完《编写可保护的JavaScript》,学到不少东西。书分为编程作风、编程实践、自动化三个部份。个中编程作风是你的代码花样商定,一致的花样不单单议有利于团队,也有助于提高新司机的代码质量和顺序的可保护性。编程作风并非相对的,每一个人或团队都有本身的编程作风,但晓得哪些地方须要注重的话,照样有助于新司机完成代码作风的改变。

第1章 基础的花样化

1.1 缩进:制表符一致tab缩进或空格缩进,不能混用
1.2 语句末端不省略分号

// 毛病的例子
var x = 5
(function(){
    alert("不要省略分号");
})();

1.3 单行长度:80字符以内,长字符用“+”支解
1.4 拆分换行:两个制表符缩进,打断点在相符后
1.5 空行,增加空白行辨别代码块

  • 每一个流程掌握语句(if,while,for…)之前

  • 在要领定义之间

  • 要领中局部变量和第一条语句之前

  • 多行或单行诠释之前

  • 要领内逻辑片断之间

1.6 定名:

  • 变量和函数,恪守驼峰大小写定名法,变量前缀为名词,函数前缀为动词,罕见商定:can/has/is返回一个布尔值

  • 常量:运用大写字母和下划线来定名

  • 组织函数:首字母大写的驼峰定名法


var setValue = function(){},    
    getValue = function(){},
    isEmpty = false,
    CONST_VALUE,                // 常量
    ConstructFunction;          // 组织函数

1.7 直接量:

  • 字符串:一致运用双引号,多行字符串由『+』衔接

  • null运用场景:将它看成占位符

    • 初始化可以赋值对象的变量

    • 与一个已初始化的变量比较

    • 当函数的参数希冀是对象时,用作参数传入

    • 返回值希冀是对象时,用作返回值

  • null不适合场景:不必null检测是不是传入参数

  • 禁用undefined

  • 对象直接量初试化数组或对象

var arr = [1, 2, 3, 4],
    obj = {key1: value1, key2: value2}

第2章 诠释

2.1 单行诠释:

  • 用来诠释下一行代码,诠释前有一个空行,缩进与下一行一致

  • 代码尾部诠释,代码与诠释间至少有一个缩进,凌驾字符限制则应放在代码上方

2.2 多行诠释:

  • 诠释前有一个空行,缩进与下一行一致

2.3 诠释的运用:代码不够清楚时增加诠释

  • 难以明白的代码

  • 可以被误认为毛病的代码

  • 浏览器特征hack

  • 文档诠释:为以下内容增加诠释,一切要领的功用、希冀参数和返回值、组织函数自定义范例和希冀参数

第3章 语句和表达式

3.1 花括号对齐体式格局:左括号放在第一句末端,右括号放在代码后一行
3.2 括号语句距离:左括号之前,右括号以后增加空格
3.3 switch不遗漏break
3.4 防止运用with
3.5 for中防止运用continue
3.6 for-in运用 hasOwnProperty()要领遍历实例属性,for-in用来遍历对象,不要用来遍历数组

第4章 变量、函数和运算符

4.1 变量声明:将局部变量集合放在函数内部第一条,var合并为一个,初始化独有一行放前面,没初始值的放在背面。

var node1 = null,
    node2 = null,
    msg = "",
    i, len;

4.2 函数声明:先声明再运用,函数声明不应当出现在流程掌握语句块以内。

// 毛病实例,函数提拔使顺序不会像设想中的那样运转
if(document.getElementsByClassName("cls")){
    function getClass(){ // someCode }
} else {
    function getClass(){ // someCode }
}

// 函数提拔后,可以看成是
function getClass(){ /* someCode */ }
function getClass(){ /* someCode */ }
if(document.getElementsByClassName("cls")){
} else {
}

4.3 函数挪用:函数名与括号间不加空格
4.4 匿名函数马上挪用:运用括号包裹起来,或增加诠释
4.5 严厉形式:在函数体内运用,而不要在全局作用域运用
4.6 相称:应当运用 === 和 !== ,可以防止强迫范例转换,制止直接运用原始范例

    原文作者:notebin
    原文地址: https://segmentfault.com/a/1190000006628891
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞