麻雀虽小,却五脏俱全,这本书涵盖:编程风格(基本格式化、注释、语句和表达式、变量),编程实践(UI层松耦合、避免使用全局变量等等)第三部分自动化。
第一部分比较基础,接触也比较多,经常培训新员工也会讲解代码规范的内容,代码规范虽然简单,但却十分重要。这部分由于熟悉也看得比较快。
第二部分编程实践,属于很多知道,却不明白原理,看完这本书之后,仔细想想原理便对它“日久也弥新”了。比如UI松耦合为什么要抽离css,js,而且这里面也牵涉了一个概念“js模板”(将HTML从js中抽离),以前用过js模板,但没怎么发现它的好处,听了这本书的一些讲解觉得还是有道理的,道理就是方便调试,(ps这个道理看起来真站不住脚啊 ,哈哈哈)方法有三:从服务器加载、简单客户端模板(自己写个函数来实现页面标签的组装)、复杂客户端模板(使用js模板,如Handlebar等)。
第一个问题:
var name = "Nicholas";
alert(name.toUpperCase());
尽管name是一个字符串,是原始类型不是对象,但你仍然可以使用诸如toUpperCase()之类的方法,即将字符串当做对象来对待。这种做法之所以行得通,是因为在这条语句背后js引擎创建了string类型的新实例,紧跟着就被销毁了,当再次需要时就会又创建另外一个对象。
var name = new String("Nicholas");
name.author = true;
alert(name.author);//true
var name = "Nicholas";
name.author = true;
alert(name.author);//undefined
在避免使用全局变量中,抛出概念:模块,其中又包含YUI模块和AMD模块。模块是一种通用的功能片段,它并没有创建新的全局变量或命名空间,相反,所有这些代码都存放于一个表示执行一个任务和发布一个接口的单函数中。可以用一个名称来表示这个模块,同样这个模块可以依赖其他模块。还有一种类型是零全局变量,jquery这些插件就是使用的这个立即执行的函数来实现零全局变量的。
事件处理:业务逻辑和事件的处理分开
比较:typeof 用来检测原始值:string number boolean undefined 最后一个原始值null 一般不用于检测。运行type null返回"object",这是一种抵消的判断null方法。如果需要检测null,则直接使用恒等运算符(===)或者非恒等(!==),检测引用值 Object、Array、Date、Error,typeof运算符显得力不从心,因为都返回“object”,使用instanceof
检测函数 typeof myFunc === “function”
检测数组
Object.prototype.toString.call(value) === "[object Array]"
检测属性
if("count" in object)
如果是只想检查实例对象的某个属性是否存在,则使用hasOwnProperty()方法。
将配置数据从代码中分离出来
Props2Js工具读取Java属性文件,并给出三种格式的输出。
抛出自定义错误的好处是可以区分出是浏览器本身的还是自己写的验证错误(感觉try catch错误自己用得很少啊 囧)
浏览器嗅探
避免浏览器推断,而应该用特性检测
第三部分自动化
文件合并加工、精简压缩、文档化、自动化测试等等
最后决定咱们项目组使用CI持续集成
哈哈哈,终于写完,看完这本书收益良多,对于如何改进js,提供了很多可以扩展的方向!
短而精的经典之作
《编写可维护的JavaScript》热门书评
-
野生JavaScript程序员必读
17有用 2无用 Yuguo 2013-04-08
我是一个野生JavaScript程序员,我相信大多数JavaScript程序员都是野蛮生长,靠的是自身的好奇和勤勉。什么是野生JavaScript程序员?我是这样定义的:基本靠自学;通过不停的`console.log`和对比来写出凑合能运行的页面;页面上充斥着全局变量;命名风格随心所欲,受到自学的其...
-
呵呵
11有用 1无用 谷神出幕 2013-04-01
如此之薄的一本书,第一版次整本读下来,如果很细心的话你会发现有n多个错误,责任编辑,难道你是边打飞机边工作的么?我只能说这尼玛太没有职业道德了!这实在太符合国产的现状了!关于翻译,有兴趣的可以看看《编码的奥秘》,呵呵俩字已经代表我的态度!挣钱——>不择手段地挣钱——>移民——>摆脱...
-
一些翻译和排版的问题
1有用 0无用 seasmiles 2013-04-09
本书的第二部分是精华。倒没太多新东西,之前的《高性能JS》《JS高级程序设计》以及《JS模式》大部分都提到过,这里算是个总结。让人很不爽的一点是:原书中的“提示建议”,是以“爪印”图标和不同的样式跟正文区分开的;中文版中图标和样式都被干掉了,跟正文混在一起。奇怪的是:前言中“本书约定”里这些图标倒是...
-
既能让其基础打得更牢,也能让你更上一层楼!
0有用 1无用 计算机新书资讯 2013-03-26
无论你是在校学生还是前端工程师都不可不阅之书,无论是初学者还是很有经验开发工程师它既能让其基础打得更牢,也能让你更上一层楼!一部构建编码风格手册的经典著作,一部帮助开发团队从“游击队”走向“正规军”的伟大之作,一部错过为之后悔的最新力作!...
-
如中国足球一样粗糙的翻译
0有用 0无用 america 2013-04-12
前几天同事刚推荐的这本“乌龟书”说是牛逼人物写的,大致翻了一遍,如中国足球一样粗糙的翻译是这本书中文版最大的败笔,翻译的太随便了,很多词不达意或不到位的地方,也不知道是译者英文水平的问题还是。。。...
书名: 编写可维护的JavaScript
作者: 扎卡斯
出版社: 人民邮电出版社
原作名: Maintainable JavaScript
译者: 郭凯 | 张散集 | 李晶
出版年: 2013-4
页数: 226
定价: 55.00元
ISBN: 9787115310088

