格式

变量

  • 变量命名, 采取小驼峰大小写
  • 变量使用名词, 函数前缀为动词
  • 局部变量应统一定义在函数的最上面, 而不是散落在函数的任意角落.
  • 赋初始值的定义在未赋初始值的变量的上面.
  • 我个人建议不使用单var语句, 因为无法在控制台单行调试

空行

  • 方法之间
  • 方法内, 局部变量和第一条语句之间
  • 多行和单行注释之前
  • 逻辑片段之间

引号

单和双都可以, 各有优点: 单引号适合但一个项目要统一.

其他

设置tab缩进4空格

不省略分号

注释

单行注释

// 单行注释

多行注释

/*
* 多行注释
*/

文档注释

这篇文章比较了几种文档注释: Javascript自动化文档工具:YUI Doc, JSDoc 3, JSDuck等比较

我建议文档注释参考JSDoc的风格.

块状语言

  • 所有块状语言都需要带上{}
  • 不使用with
  • for循环内使用条件语句代替continue
  • for-in循环中, 都需要用hasOwnProperty()为循环过滤出对象的实例属性

函数

  • 函数名和左括号之间不要空格
  • 函数先声明在上
  • 对立即执行的函数, 如果将它的结果赋值, 则用括号括起来
var value = (function() {
//函数体
}());

编程实践

使用===!==, 而不使用==!=

解耦

  • 把js从html中抽离: 不在html中写代码
  • 把js从css中抽离: 避免使用css表达式
  • 将css从js中抽离: 动态改变元素样式的最佳方式是用js改变元素的className
  • 将html从js中抽离: 把html字符串保存成html文件后者后台渲染出来的html, 使用jquery的load方法填充在元素中; 或者使用模板引擎在浏览器端动态渲染.

需要达到的, 除了在html中用标签引入css和js文件外, 使用class把css和html关联上, 使用idclass或者模板的方式把js和html关联上.

抽离

  • 事件处理器应用逻辑进行抽离
  • 将外部数据作为参数传递给函数内部, 使得函数内部不依赖外部变量, 以便编写单元测试
  • 将配置数据从代码中分离出来

浏览器检测

  1. 尽可能地使用特性检测.
  2. 如果不能使用特性检测, 退而求其次, 针对老版本的浏览器使用用户代理检测.
  3. 永远不要使用浏览器推断.

编写可维护的javascript阅读笔记的更多相关文章

  1. 《编写可维护的JavaScript》 笔记

    <编写可维护的JavaScript> 笔记 我的github iSAM2016 概述 本书的一开始介绍了大量的编码规范,并且给出了最佳和错误的范例,大部分在网上的编码规范看过,就不在赘述 ...

  2. 编写可维护的Javascript读书笔记

    写在前面:之前硬着头皮参加了java方面的编程规范培训,收货良多,工作半年有余的时候,总算感觉到一丝丝Coding之美,以及造轮子的乐趣,以至于后面开发新功能的时候,在Coding style方面花了 ...

  3. 读《编写可维护的javascript》笔记

    第一章 基本的格式化 缩进层级:推荐 tab:4; 换行:在运算符后面换行,第二行追加两个缩进: // Good: Break after operator, following line inden ...

  4. 【读书笔记】读《编写可维护的JavaScript》 - 编程实践(第二部分)

    本书的第二个部分总结了有关编程实践相关的内容,每一个章节都非常不错,捡取了其中5个章节的内容.对大家组织高维护性的代码具有辅导作用. 5个章节如下—— 一.UI层的松耦合 二.避免使用全局变量 三.事 ...

  5. 《编写可维护的javascript》读书笔记(中)——编程实践

    上篇读书笔记系列之:<编写可维护的javascript>读书笔记(上) 上篇说的是编程风格,记录的都是最重要的点,不讲废话,写的比较简洁,而本篇将加入一些实例,因为那样比较容易说明问题. ...

  6. 《编写可维护的javascript》读书笔记(上)

    最近在读<编写可维护的javascript>这本书,为了加深记忆,简单做个笔记,同时也让没有读过的同学有一个大概的了解. 一.编程风格 程序是写给人读的,所以一个团队的编程风格要保持一致. ...

  7. 《编写可维护的JavaScript》之编程实践

    最近读完<编写可维护的JavaScript>,让我受益匪浅,它指明了编码过程中,需要注意的方方面面,在团队协作中特别有用,可维护性是一个非常大的话题,这本书是一个不错的起点. 本书虽短,却 ...

  8. 编写可维护的JavaScript之编程风格

    在团队中只有每个人的编程风格一致,大家才能方便的互相看懂和维护对方的代码. 1. 层级缩进 对于层级缩进目前有两种主张:1)使用制表符这种方法有两种好处,第一,制表符和缩进层级之间是一一对应关系,符合 ...

  9. 编写可维护的JavaScript代码(部分)

    平时使用的时VS来进行代码的书写,VS会自动的将代码格式化,所有写了这么久的JS代码,也没有注意到这些点.看了<编写可维护的javascript代码>之后,做了些笔记. var resul ...

随机推荐

  1. Llinux,NFS服务搭建(文件共享)

    NFS配置文件权限参数说明(/etc/exports) 1.rw :表示可读写权限. 2.ro :表示只读权限. 3.sync :请求或写入数据时,数据同步写入到NFS Server的硬盘后才返回.( ...

  2. 【ACM】hdu_zs2_1004_Problem D _201308030856

    Problem D Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other)Total Subm ...

  3. RabbitMQ发布订阅实战-实现延时重试队列

    RabbitMQ是一款使用Erlang开发的开源消息队列.本文假设读者对RabbitMQ是什么已经有了基本的了解,如果你还不知道它是什么以及可以用来做什么,建议先从官网的 RabbitMQ Tutor ...

  4. HDU 4505

    哈哈哈哈哈哈哈哈哈,省赛,一等奖,一定的一定的一定的一定的... #include <iostream> #include <cstdio> #include <cstr ...

  5. sqlserve 数据类型具体解释

    decimal   精确数值型  decimal 数据类型能用来存储从-10的38次幂-1到10的38次幂-1的固定精度和范围的数值型数据.使用这样的数据类型时,必须指定范围和精度. 范围是小数点左右 ...

  6. HttpSession的深入分析与研究

    HTTP是无状态协议,这意味着每次client检索网页时,都要单独打开一个server连接,因此server不会记录下先前client请求的不论什么信息. 有三种方法来维持client与server的 ...

  7. Web API接口设计(学习)

    1.在接口定义中确定MVC的GET或者POST方式 由于我们整个Web API平台是基于MVC的基础上进行的API开发,因此整个Web API的接口,在定义的时候,一般需要显示来声明接口是[HttpG ...

  8. Linux命令(八)——vi编辑器的使用

    vi编辑器是linux系统下的标准正文编辑器,有三种基本模式:命令行模式.插入模式和底行命令模式. 1.命令行模式:控制屏幕光标的移动,字符.字或行的删除,移动复制某区段及进入插入模式或底行命令模式下 ...

  9. Patterns in the Composite Application Library

    Patterns in the Composite Application Library Inversion of Control https://www.codeproject.com/Artic ...

  10. 国外物联网平台初探(二) ——微软Azure IoT

    平台定位 连接设备.其它 M2M 资产和人员,以便在业务和操作中更好地利用数据. 连接 IoT 设备 将所有设备连接到云,从这些设备接收大规模数据,以及管理这些设备的授权和限制. 在将设备连接到云和处 ...