编写可维护的javascript阅读笔记
格式
变量
- 变量命名, 采取小驼峰大小写
- 变量使用名词, 函数前缀为动词
- 局部变量应统一定义在函数的最上面, 而不是散落在函数的任意角落.
- 赋初始值的定义在未赋初始值的变量的上面.
- 我个人建议不使用单var语句, 因为无法在控制台单行调试
空行
- 方法之间
- 方法内, 局部变量和第一条语句之间
- 多行和单行注释之前
- 逻辑片段之间
引号
单和双都可以, 各有优点: 单引号适合但一个项目要统一.
其他
设置tab缩进4空格
不省略分号
注释
单行注释
// 单行注释
多行注释
/*
* 多行注释
*/
文档注释
这篇文章比较了几种文档注释: Javascript自动化文档工具:YUI Doc, JSDoc 3, JSDuck等比较
我建议文档注释参考JSDoc的风格.
块状语言
- 所有块状语言都需要带上
{} - 不使用
with for循环内使用条件语句代替continuefor-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关联上, 使用id和class或者模板的方式把js和html关联上.
抽离
- 将事件处理器和应用逻辑进行抽离
- 将外部数据作为参数传递给函数内部, 使得函数内部不依赖外部变量, 以便编写单元测试
- 将配置数据从代码中分离出来
浏览器检测
- 尽可能地使用特性检测.
- 如果不能使用特性检测, 退而求其次, 针对老版本的浏览器使用用户代理检测.
- 永远不要使用浏览器推断.
编写可维护的javascript阅读笔记的更多相关文章
- 《编写可维护的JavaScript》 笔记
<编写可维护的JavaScript> 笔记 我的github iSAM2016 概述 本书的一开始介绍了大量的编码规范,并且给出了最佳和错误的范例,大部分在网上的编码规范看过,就不在赘述 ...
- 编写可维护的Javascript读书笔记
写在前面:之前硬着头皮参加了java方面的编程规范培训,收货良多,工作半年有余的时候,总算感觉到一丝丝Coding之美,以及造轮子的乐趣,以至于后面开发新功能的时候,在Coding style方面花了 ...
- 读《编写可维护的javascript》笔记
第一章 基本的格式化 缩进层级:推荐 tab:4; 换行:在运算符后面换行,第二行追加两个缩进: // Good: Break after operator, following line inden ...
- 【读书笔记】读《编写可维护的JavaScript》 - 编程实践(第二部分)
本书的第二个部分总结了有关编程实践相关的内容,每一个章节都非常不错,捡取了其中5个章节的内容.对大家组织高维护性的代码具有辅导作用. 5个章节如下—— 一.UI层的松耦合 二.避免使用全局变量 三.事 ...
- 《编写可维护的javascript》读书笔记(中)——编程实践
上篇读书笔记系列之:<编写可维护的javascript>读书笔记(上) 上篇说的是编程风格,记录的都是最重要的点,不讲废话,写的比较简洁,而本篇将加入一些实例,因为那样比较容易说明问题. ...
- 《编写可维护的javascript》读书笔记(上)
最近在读<编写可维护的javascript>这本书,为了加深记忆,简单做个笔记,同时也让没有读过的同学有一个大概的了解. 一.编程风格 程序是写给人读的,所以一个团队的编程风格要保持一致. ...
- 《编写可维护的JavaScript》之编程实践
最近读完<编写可维护的JavaScript>,让我受益匪浅,它指明了编码过程中,需要注意的方方面面,在团队协作中特别有用,可维护性是一个非常大的话题,这本书是一个不错的起点. 本书虽短,却 ...
- 编写可维护的JavaScript之编程风格
在团队中只有每个人的编程风格一致,大家才能方便的互相看懂和维护对方的代码. 1. 层级缩进 对于层级缩进目前有两种主张:1)使用制表符这种方法有两种好处,第一,制表符和缩进层级之间是一一对应关系,符合 ...
- 编写可维护的JavaScript代码(部分)
平时使用的时VS来进行代码的书写,VS会自动的将代码格式化,所有写了这么久的JS代码,也没有注意到这些点.看了<编写可维护的javascript代码>之后,做了些笔记. var resul ...
随机推荐
- ext4的一些特性
delalloc介绍 delalloc是ext4下的一个新特性,延迟分配技术Delay Allocation. 实现原理为: Buffer Write时数据会被保存到page cache中,但是系统并 ...
- 简单说基于JWT和appkey、sercurtyKey的SSO、身份认证方案
环境介绍, 一个大的系统由多个子系统组成.典型地,假设有一个平台,其上接入了多个应用.则有几个常见的问题需要处理, 1.SSO(包括单个应用退出时,需要处理为整个系统退出): 2.平台跳转到应用.及应 ...
- 29.es路由原理
主要知识点 1.document路由到shard的理解及原理 2.路由算法:shard = hash(routing) % number_of_primary_shards 3.routing值(_i ...
- [SDOI2008]沙拉公主的困惑 线性筛 素数+欧拉
本文为博主原创文章,欢迎转载,请注明出处 www.cnblogs.com/yangyaojia [SDOI2008]沙拉公主的困惑 线性筛 素数+欧拉 题目大意 给定n,m,求在1到n!内与m!互质的 ...
- ul,li不能左右居中的问题
近期帮朋友做一个他们公司的商品站点,用到了曾经学到的html+css技术,当然做站点少不了Javascript和jquery这些..... 这个功能主要实现了导航条里面的条目是居中的.所以声明了ul, ...
- Unix(AIX) set命令
Unix(AIX) set命令,set命令是shell所具有的,不仅仅是aix自己有的: set -o vi 可以用vi方式操作,用来获取已经输入过的命令: 如果希望自动设置,可以在.profile ...
- 号外:java基础班教材永久免费 报名就送
以前万人疯抢的成都传智播客java基础班教材,今日免费赠送,你hold的住吗? 由成都传智播客传道授业解惑的诸位老师,精心制作的教材.如今免费赠送,你能接的住吗? 书是交融感情.获得知识.传承经验的重 ...
- HDU 1576 A/B(扩展欧几里德变形)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1576 Problem Description 要求(A/B)%9973,但因为A非常大,我们仅仅给出n ...
- Android requires compiler compliance level 5.0 or 6.0. Found '1.4' instead的解决的方法
今天在eclipse里报这个错误: Android requires compiler compliance level 5.0 or 6.0. Found '1.4' instead. Plea ...
- 每天一个linux命令(01):ifconfig命令
许多windows非常熟悉ipconfig命令行工具,它被用来获取网络接口配置信息并对此进行修改.Linux系统拥有一个类似的工具,也就是ifconfig(interfaces config).通常需 ...