《Maintainable JavaScript》读书笔记
CHAPTER 1 Basic Formatting
(1)Indentation Levels: 使用tab对代码进行缩进,以此来体现代码的结构和层次。
1 if( isMatch === true ) { 2 var matchedPerson = "zj" ; 3 for( var i = 0; i < 10; i ++ ) { 4 // do something 5 } 6 }
(2)Statement Termination: 在一行javascript语句的最后用分号结尾,以避免由于ASI(automatic semicolon insertion)机制的不确定的工作结果而导致的未知错误。
1 var isHandsome = true ;
(3)Line Length: 为了提高代码的可读性,应该将一行代码的长度保持在80个字符之内,超过80个字符的部分应该换到下一行。
(4)Line Breaking: 当一行代码超过80个字符时要通过换行将其划分成两行,换行应该在某个操作符之后进行,以避免ASI在换行处自动添加分号而导致的语法错误。同时换到下一行的代码应该要有两级缩进,以与可能有的子语句(例如if语句的子语句)区分开来。
1 if( isLeapYear && isFebruary && day === 29 && itsYourBirthday && 2 noPlans ) { 3 waitAnotherFourYears() ; 4 }
(5)Blank Lines: 适当地添加空行以使得程序的结构看起来不至于过于紧凑而更加清晰,适合添加空行的场合有:在每个流程控制语句之前(例如if和for语句);在两个函数(方法)之间;在方法中声明局部变量的语句和第一条执行语句之间;在(单行或多行)注释代码之前;在函数内部不同业务逻辑的代码段之间。
1 var f1 = function() { 2 var zj, xu, xj; 3 var persons = []; 4 5 zj = "epson"; 6 xu = "scan"; 7 xj = "zoro"; 8 persons.push(zj); 9 persons.push(xj); 10 persons.push(xu); 11 12 for( var i = 1; i < 3; i ++ ) { 13 for( var j = 0; j < 3 - i; j ++ ) { 14 if( persons[j] > persons[j+1] ) { 15 var temp = persons[j] ; 16 persons[j] = persons[j+1] ; 17 persons[j+1] = temp ; 18 } 19 } 20 } 21 }; 22 23 var f2 = function() { 24 25 };
(6)Naming: javascript中一般使用小驼峰命名法,即以小写字母开头,名称中从第二个单词开始的每个独立单词首字母都采用大写,以划分标识符中的各个单词。变量(variable)的命名通常以名词开头,以与函数(function/method)的命名区分开来避免造成混淆,后者的命名则通常以动词开头;常量(constant)通常采用全部大写字母命名,并以下划线划分名称中的单词;构造函数采用大驼峰命名法,与小驼峰命名法的区别在于它以大写字母开头,以使构造函数从命名方式上与一般的函数区别开来。
1 var numOfPersons = 10 ; //变量 2 var getNumOfPersons = function() { //函数 3 4 }; 5 var MAX_COUNT = 3.14 ; //常量 6 var Person = function() { //构造函数 7 8 }; 9 10 var zj = new Person() ;
(7)Literal Values:
Strings: 使用双引号来声明一个字符串变量,这是为了与其他语言的习惯保持一致(例如Java)。当字符串长度过长而需要划分为两行时,不要直接在字符串中换行,而是应该使用"+"操作符将分成两段的字符串连接起来。
1 //错误的做法 2 var text = "Here's the story, of a man 3 named Beady." ; 4 5 //正确的做法 6 var text = "Here's the story, of a man " + 7 "named Beady." ;
Numbers: 如果要声明浮点数型的变量,务必将小数点两端的数都写完整,不要在数的左侧或右侧留下一个小数点然后坐等着javascript帮你补上0。再有就是不要在一个数的前面加上多余的0,因为这样该数会被解释成八进制数,而且许多程序员对八进制数都不熟悉,容易造成各种误会。
1 //Interger 2 var count = 10 ; 3 4 //Demical 5 var price = 10.0 ; 6 var price = 10.00 ; 7 8 //Bad Demical: Hanging demical point 9 var price = 10. ; 10 11 //Bad Demical: Leading demical point 12 var price = .1 ; 13 14 //Bad: Octal(base 8) is deprecated 15 var num = 010 ; 16 17 //Hexadecimal(base 16) 18 var num = 0x42 ; 19 20 //E-notation 21 var num = 1e23 ;
转载于:https://www.cnblogs.com/ZJAJS/archive/2012/10/10/2718743.html
《Maintainable JavaScript》读书笔记相关推荐
- 读书笔记 | 墨菲定律
1. 有些事,你现在不做,永远也不会去做. 2. 能轻易实现的梦想都不叫梦想. 3.所有的事都会比你预计的时间长.(做事要有耐心,要经得起前期的枯燥.) 4. 当我们的才华还撑不起梦想时,更要耐下心来 ...
- 读书笔记 | 墨菲定律(一)
1. 有些事,你现在不做,永远也不会去做. 2. 能轻易实现的梦想都不叫梦想. 3.所有的事都会比你预计的时间长.(做事要有耐心,要经得起前期的枯燥.) 4. 当我们的才华还撑不起梦想时,更要耐下心来 ...
- 洛克菲勒的38封信pdf下载_《洛克菲勒写给孩子的38封信》读书笔记
<洛克菲勒写给孩子的38封信>读书笔记 洛克菲勒写给孩子的38封信 第1封信:起点不决定终点 人人生而平等,但这种平等是权利与法律意义上的平等,与经济和文化优势无关 第2封信:运气靠策划 ...
- 股神大家了解多少?深度剖析股神巴菲特
股神巴菲特是金融界里的传奇,大家是否都对股神巴菲特感兴趣呢?大家对股神了解多少?小编最近在QR社区发现了<阿尔法狗与巴菲特>,里面记载了许多股神巴菲特的人生经历,今天小编简单说一说关于股神 ...
- 2014巴菲特股东大会及巴菲特创业分享
沃伦·巴菲特,这位传奇人物.在美国,巴菲特被称为"先知".在中国,他更多的被喻为"股神",巴菲特在11岁时第一次购买股票以来,白手起家缔造了一个千亿规模的 ...
- 《成为沃伦·巴菲特》笔记与感想
本文首发于微信公众帐号: 一界码农(The_hard_the_luckier) 无需授权即可转载: 甚至无需保留以上版权声明-- 沃伦·巴菲特传记的纪录片 http://www.bilibili.co ...
- 读书笔记002:托尼.巴赞之快速阅读
读书笔记002:托尼.巴赞之快速阅读 托尼.巴赞是放射性思维与思维导图的提倡者.读完他的<快速阅读>之后,我们就可以可以快速提高阅读速度,保持并改善理解嗯嗯管理,通过增进了解眼睛和大脑功能 ...
- 读书笔记001:托尼.巴赞之开动大脑
读书笔记001:托尼.巴赞之开动大脑 托尼.巴赞是放射性思维与思维导图的提倡者.读完他的<开动大脑>之后,我们就可以对我们的大脑有更多的了解:大脑可以进行比我们预期多得多的工作:我们可以最 ...
- 读书笔记003:托尼.巴赞之思维导图
读书笔记003:托尼.巴赞之思维导图 托尼.巴赞的<思维导图>一书,详细的介绍了思维发展的新概念--放射性思维:如何利用思维导图实施你的放射性思维,实现你的创造性思维,从而给出一种深刻的智 ...
- 产品读书《滚雪球:巴菲特和他的财富人生》
作者简介 艾丽斯.施罗德,曾经担任世界知名投行摩根士丹利的董事总经理,因为撰写研究报告与巴菲特相识.业务上的往来使得施罗德有更多的机会与巴菲特亲密接触,她不仅是巴菲特别的忘年交,她也是第一个向巴菲特建 ...
最新文章
- Virtual PC磁盘的最佳压缩方式
- 域客户端如何定位并登录域控制器
- Android笔记一.深入理解Intent和IntentFilters(一)
- 一文看懂Python(三)-----字典篇
- 使用cloudera manager安装Oozie服务【详细步骤】
- WCF从理论到实践(4):路在何方
- 【APICloud系列|14】xcode下载地址
- 真正的高情商,从学会麻烦别人开始
- 干货!一文搞懂无状态服务
- git遇到的错误集锦及解决方法
- Content-type 对照表
- 【你们项目组有几个测试,你负责什么,迭代了几个版本,迭代周期,写了多少测试用例?】
- edge浏览器,无法继续下载,提示检测到病毒的问题
- linux 电源管理 regulator,Linux电源管理-Linux regulator framework概述
- java 相关学习笔记
- PPP / PPPoE
- mydumper 介绍及使用
- camera中文版软件 ip_911 S5使用教程动态IP代理配置VMlogin中文版反指纹浏览器Multilogin浏览器教程...
- JavaScript正则表达式给html字符串的img标签增加style样式
- css 背景效果_软件技术:我写CSS的常用套路(附demo的效果实现与源码)