当我对JavaScript还停留在只认识这几个字母的时候,有一天我突然心血来潮,在网上下了DOM Scripting的样章,照着里面的例子写了我平生第一个能让我知所以然JavaScript,在浏览器运行成功,兴奋不已,从此能把学习编程的热情持续半年以上,破了过去只能热一两个星期的记录,它带给我的影响不只是JavaScript本身,我同时已经初步入门了Ruby on Rails。
为什么之前我之前也拷贝粘贴过JavaScript, 也曾试图学习过,但都无疾而终?除了这种JavaScript的经典学习方式不适合作为非程序员的我外,更重要的,网上或者市面上根本没有合适的教程,您所看到的大部分教程,除了让您一头雾水外,还可能把您引入岐途。随着web标准的发展,JavaScript的开发方式已经发生了质的变化,急需一本结合 web标准理念来教学JavaScript的入门教程来革新旧开发者的观念,引导初学者一开始就走在正确的路上,这方面,我想没有谁能够比领导WaSP DOM Scripting Task Force的Jeremy Keith更权威。
![](http://www.dearbook.com.cn/book/BookImage/lastTS00111271__.jpg)
最近,由人民邮电引进出版的中文版《JavaScript DOM编程艺术》终于面市,我第一时间购买了并阅读完毕,因此将我读后感发表出来与大家分享,如有什么高见,请留言不吝赐教,谢谢。
首先要说的本书的书名,原书名是: Dom Scripting: Web Design with JavaScript and the Document Object Method, 显而易见,本书是面向初学者的,而且对象比较明确,web设计师, 并且表明了本书的内容主要就是DOM, 因此想从本书里看到JavaScript奇技淫巧,想看到Ajax的高级应用什么的,肯定会大失所望。中文版的译名在我本人看来没能表达出原书名要表达的意思,当然基于市场考虑,加上“艺术”之流的字眼还是可以原谅的,最重要的,还是书本的内容质量。翻译来说,虽然有个术语比较别扭(如hook翻译成“挂钩”),但有些也相当精确(如graceful degradation翻译为“预留退路”)。比起CSS Mastery的翻译来,相当不错了。
为何面对设计师?(当然不是说不是设计师就不能看)当web标准越来越普及,使用XHTML和CSS来构建兼容标准的网页的设计师越来越多,接触了 web标准的观念和大量使用CSS之后,对于DOM其实已经有了非常感性的认识,只需高人来点破即可迅速掌握DOM的基本操作,而在网页里,对DOM的操作,绝大部分是JavaScript. 所以,我觉得,如果您现在已经了解web标准并积累有一定的项目经验,那么,这本书对您来说,阅读应该很轻松,即使,您没有任何的编程经验。所以,书中对于怎么入门编程,其实就只是简介一下JavaScript的语法,而也不会使用复杂的语句来构建例子程序,绝大部分只停留在if, for等简单的逻辑上。
至于书的内容,我觉得您直接去看网上提供的目录就可以一目了然。在我看来,它只不过就是获取DOM节点及其类型和值,如何改变DOM节点的类型和值,如何插入和删除DOM节点,如果您CSS基础好,那么您简直就是在看一本CSS书籍中的选择器介绍,只不过DOM更强大和灵活,并活起来罢了。并简要介绍了JavaScript的动画原理,让您明白,动的背后其实很简单,还提供了一个制作整站实例的过程,对于一些非设计师来说可以一窥网站诞生的流程。最后一章展望,其实就是入门书都提供的,就是对JavaScript的一些高级应用的概述,来吸引您继续学习的兴趣。不过连展望都不忘提醒贯穿整书的理念:
JavaScript是用来充实网页而不是构建网页的,并基于web标准的结构,表现,行为分离原则。任何时候不要忘了无障碍,网页的核心内容在JavaScript缺席的时候不能受影响。
确实,这是本不折不扣的入门书,对于初学者更合适。但是,是不是说对于老鸟就不适合了呢?非也,前面已经提到,尽管本书的技术浅显,但始终贯穿书本的开发理念与原则,或许是作为老鸟的您从来没有听过或者一知半解的,我建议您可以把它当作一本小说来看,不必像初学者一样拘泥于技术细节。为何这么说?
Ajax引爆JavaScript的流行,流行展望当今JavaScript,大量框架的涌现,您已经可以不费吹灰之力迅速搭建一个 JavaScript应用,这样让大家的应用看起来都一样,最终结果看起来似乎都一样:解决了问题。但是您有否想过,这相同结果可能在只有 JavaScript的时候?您是否想过能在禁止JavaScript的情况下,人家的能用您的不能用?为何?书本不会直接给您答案,但我相信您能间接找到。没错,该刷新您的开发观念了。而且书不厚,您只需花一个下午。
通往终点的过程与终点本身同样重要。