站书店翻了一下 吹个毛求个疵

Whyme Lyu
2010-07-24 看过
P48 原文说(CSS中的)common层等于MVC中的M
这何必...CSS又不是什么可程序化的东西, 何必非要跟这个词去套近乎.

P53~54
双倍margin的现象是: IE6中左浮动那么左margin会双倍, 右浮动那么右margin会双倍. 原文没有明确说明左右.

P81~82
CSS的权重不能简单地说"HTML选择符是1, 类选择符是10, ID选择符是100"
因为这里并没有10进制的进位关系, 亦即, 即使10个类选择符一起也不抵一个ID选择符的权重.

P89~91
利用CSS解析的怪异之处, 让一些css规则仅适用于某些浏览器, 这叫CSS Filter而不叫CSS Hack
向后兼容这个词的使用似乎也不太正确. `为尽量满足/适应新版本`应该叫做向前兼容吧.
http://en.wikipedia.org/wiki/Forward_compatibility

P94
hasLayout虽说是IE的私有实现, 但其效果可以说完全是照着CSS规范中的Block formatting context来的. 提一嘴有益于理解.

P112~P122
网格布局(至少在相对广泛的认识中)不是简单地指按百分比布局的CSS框架, 而是平面设计的概念
简单说就是用分栏+栏间的槽来确定页面中各个元素的横向尺寸(块宽度, 横向间距, 表单域宽度等).
这本书对网格布局有介绍: http://book.douban.com/subject/2345964/
这本书也有一章讲到 http://book.douban.com/subject/3042031/

P165
用document.all来检测浏览器是否为IE? 这显然是逻辑错误.
如果是IE, 那么有document.all, 前者是后者的充分而非必要条件
如果是IE, 那么需要用e.cancelBubble=false来完成取消冒泡, 逻辑关系同上.
如此, 并不能确定document.all是使用cancelBubble的充分条件.
比如面对opera这里: http://dev.opera.com/articles/view/using-capability-detection/

P176
这几个类型检测函数, 多数只是简单的typeof封装, 意义不大(当然不排除是为了应对未来的JS语言改进而设);
有些不够严谨, 比如isFunction会在Webkit系浏览器中把正则表达式判断为函数, isArray只是简单应用instanceof, 不能正确检测另一个window环境中的数组.

P183
一个JS库中的Cookie与Ajax通信部分都是在重新定义浏览器API, 抹平浏览器间差异, 按照作者的观点似乎更适合放在Base层而不应放在Common层.

P190
对词法作用域的解释不够详尽.
P207
对this关键字的解释也感觉不够深入
(考虑到本书更多关注的是前端架构规划与团队协作, 技术层面的不深入可以稍微原谅一点么?)

P217
电话簿的例子, 作者分明用非OO的语法写出了OO思想的代码, 却说这是面向过程的代码.
PHP中的curl库(嗯其实就是C中的curl库)就是典型的非OO语言实现了OO. 与书中的电话簿例子何其相似.
另外面向过程编码与OOP也并不是非此即彼的分类关系吧..?

总之神经如我者慎读.
35 有用
5 没用

查看更多豆瓣高分好书

评论 26条

查看更多回应(26)

编写高质量代码的更多书评

推荐编写高质量代码的豆列

了解更多图书信息

豆瓣
免费下载 iOS / Android 版客户端