【书名】 JavaScript 征途
【作者】 朱印宏
【ISBN】 978-7-121-09086-8
【出版社】电子工业出版社
【出版日期】2009年9月
【定 价】89.00元
【本书特色】
2008年度最佳原创图书奖得主朱印宏扛鼎力作
这是一本帮助您寻找JavaScript路标的书
这是一本探索JavaScript征途起点和重点的秘笈
在趣味阅读中体验理性思维的快乐,并渐行渐远
全书做到统筹、有序,在结构上体现系统性和完整性
【内容简介】
本书是一本学习JavaScript语言的权威书籍,在遵循语言学习的特殊规律基础上精心选材,力争做到统筹、有序,在结构上体现系统性和完整性。同时还重点挖掘JavaScript基于对象的开发精髓及函数式编程两个技术核心。
本书内容全面,由浅入深,包括6篇21章,主要内容包括:JavaScript语言的基本特性,开发简单的JavaScript程序,JavaScript语法体系,数据、数据类型和变量,运算符和表达式,语句和结构,JavaScript函数, JavaScript对象,数组,字符串,使用正则表达式操纵字符串,客户端,控制文档结构的模型,JavaScript事件驱动模型,CSS,Cookie,XML和JSON,Ajax,深入JavaScript面向对象编程,深入JavaScript函数式编程,深入JavaScript动态化编程等。
【推荐序】
本书获得了计算机技术专业师生的首肯,并推荐选用,其优势可以简单概括为系统、深入和浅出。
系统
系统性是广大初学者要完全认识和掌握一门语言的基础,它体现在技术知识、语言结构的有序、完整和严谨性上。很多读者由于没有注意到这个问题,随意选择一本JavaScript技术图书,也就形成个人对于JavaScript技术的片面认识,不能够很好地发挥JavaScript语言的潜能。本书不仅关注JavaScript语言词法、语法体系的完整性,同时系统讲解JavaScript核心特性,以及JavaScript的重要应用。
深入
深入不是艰涩,本书尽力克服内容的枯燥和艰涩,对于一些核心且会影响读者对于问题理解的关键概念总是穷追不舍、刨根溯源,如字符串的计算方式、数据和数据类型、函数闭包、函数的this指针、类和继承等。
浅出
本书以通俗、生动的语言描述了各种“冰冷”的技术话题和概念应用,同时在详尽的描述中,对于重点、难点技术和知识点,总会不厌其烦地进行旁征博引。语言主要是以轻松、愉悦的描述和比喻为主,避免机械式说明。这种描述语言有时候会稍显啰嗦,但是对于读者理解和铭记一些重点、难点概念和知识是必要的。换句话说,好的图书应该是营养和吸收同步,否则再好的山珍、熊掌对于无法消化的胃口来说都是一个负担。
【关于本书】
JavaScript语言最近几年发展速度比较快,有关JavaScript语言的技术图书也是汗牛充栋。当然,书总是越写越深入,越写越通俗。在仔细分析当前JavaScript图书存在的问题,并征求广大读者的意见之后,我萌生了另眼写作JavaScript的冲动。
JavaScript的优势在于灵活,而不是庞杂,同时它也是少数几种能够兼顾函数式编程和面向对象编程的语言,要全面认识JavaScript的语言特性,完全驾驭JavaScript技术,就应该有一本好的技术参考图书,本书的定位正是基于此,而不是简单的重复。
如果你因为难以消化外版图书的艰涩和枯燥,如果你因为被众多技术图书偏失所困惑,越读越糊涂,那么建议你试读本书。本书绝对让你读起来上瘾,读起来有意思,读得透悟和深入。
寓情喻理,润物无声
本书最大的优点就是秉承作者一贯的写作风格,声情并茂,寓情喻理,注重读者情商和智商的潜移默化。例如,在讲解JavaScript类时,从黄生借书说这个典故开始,娓娓道来,然后又以李博士的幽默人生切入定义类的方法。读者在细读中,不知不觉中掌握技术的真谛。在讲解函数时,从魔术盒入笔,在生动的比较中,发现函数的内涵,而不是直白、被动地接受技术。通过风沙缠绵,分析数据与运算的内在关系,由高考语法试题分析语句中的逻辑关系,如此等等,读者在生动的故事、浓郁的描述中不知不觉理解各种抽象的概念,明白其中的道理。
在故事中孕育道理
技术图书好像很少讲故事,技术图书的作者习惯于“板起面孔”说道理,而本书贯穿大量的故事,小故事可能三言两语,大故事也可能一段两段,高手可能会感觉有点啰嗦,但是对于广大初学者或进阶者来说,绝对能够帮助你轻松阅读、快速消化。例如,在讲解JavaScript接口时,穿插新编黔驴技穷的故事、诸葛孔明与好事之徒对白,把深奥的道理通俗化、趣味化。从陆游的卜算子入笔,逐步深入探析函数式编程,读起来很亲切、有趣味。在讲解递归运算时,从老和尚讲故事开始,再通过游戏进行生动讲解等。
抽象道理生活化
类和对象很抽象,但是如果使用归类法和演绎法把这些道理生活化,你会感觉非常有趣,而不是枯燥难耐。对于原型继承,则从最基本、最简单的数据类型开始,从易被人遗忘的知识中不断推演出抽象的道理。讲到函数式编程,先从编程的历史和分类开始,纲举目张。
知其然,知其所以然
书不能够简单作为知识的传声筒,还应该成为放大器。让读者知其然,还要让读者知其所以然,本书在每章中都能够渗透大量的外延性知识和技术,真正让读者举一反三,彻底明白JavaScript技术的内涵和外延。例如,在讲解Ajax技术时,从HTTP本质探析开始,再从异步交互技术的发展历史娓娓道来,让读者读起来很明白,不仅会用,还会应变。在讲解递归运算时,不追求如何解递归方程,而探析与递归运算相关的技术应用,让读者真正学有所用,学得实在。在讲解数据和数据类型时,从物质的本原开始,从计算机的硬件支持剖析,真正让读者明白其中的道理,以及道理背后的故事,另外还有字符串的数据类型、数组本质、动态化编程等。
挖井的道理
读书或写书都存在这样的陋习:浅尝辄止,不注重深挖。这对于读者来说,很容易产生夹生饭。本书注意到这个问题,不管讲解什么内容,总是深挖,直到挖出井水来。特别是JavaScript重点、难点知识更是如此。例如,在讲解原型继承时,本书使用了近30多页来挖掘其所有内涵,使用了近40页由浅入深详细讲解函数闭包的应用,使用近20页讲解this关键字等。对于类的拓展,分别讲解了类的封装、构造、析构、多态、抽象等。对于XMLHttpRequest技术,本书不仅仅讲解其用法,还系统讲解不同类型数据的异步处理、不同请求方式的处理、状态跟踪,以及代码封装,让读者很快把握XMLHttpRequest技术的内涵。在讲解函数作用域、作用域链、调用对象等比较生涩的技术概念时,从简单的生活故事开始,逐步深入,慢慢化解。
用示例演示道理,用代码指点迷津
本书提供了大量的示例,基本每讲解一个道理、一个知识点或一项应用时,都要以示例进行演示,目的是帮助读者快速掌握这些技术。当然,为了节省篇幅,所举代码都是极尽精练,并富有代表性,这样就可以节省大量篇幅,为读者节省开支,同时避免读者迷失于大段的代码中而不能够自拔。
经典与思想的对决
本书渗透了大量的编程思想,如函数式编程、面向对象编程等,还包括很多经典的算法,如汉诺塔、斐波那契数列、杨辉三角等。
深入探析面向对象和函数式编程
为了避免偏失,本书不仅系统讲解JavaScript语言核心,同时深刻讲解JavaScript函数式编程、面向对象编程。另外,还就客户端应用开发进行全面剖析,如事件处理、动画设计、浏览器控制、数据交互等。
兼容主流浏览器
本书示例完全兼顾IE、Firefox、Opera等主流浏览器,同时还就各种客户端开发中的兼容问题进行详细讲解,特别是事件驱动模型、CSS动画设计、BOM浏览器对象处理、异步通信技术和XML数据处理等实用技术,但是它们都存在不兼容性问题。
【目录】
第1篇 壮志从戎
第1章 与初学者谈谈JavaScript学习 3
1.1 学之初,你应该清楚的几个概念 3
1.1.1 B/S和C/S 3
1.1.2 RWC和RIA 4
1.1.3 结构、行为和表现 4
1.2 审视JavaScript语言特性 5
1.2.1 JavaScript是一门灵活的脚本语言 5
1.过程化设计 6
2.定义原型方法 6
3.封装原型方法 6
4.造车不如设计标准 7
5.方法接龙 7
6.实例体验 8
1.2.2 JavaScript是基于对象的语言 8
1.万物皆为对象 8
2.奇怪的指针 9
3.灵活的用法 9
1.2.3 JavaScript是函数式语言 10
1.八面玲珑的函数 10
2.函数的作用域 11
3.奇怪的函数闭包 11
4.函数的上下文对象 11
1.3 JavaScript语言风云录 12
1.3.1 JavaScript寻根 12
1.3.2 三国志—JavaScript、JScript和ECMAScript 13
1.3.3 一个好汉三个帮—客户端的JavaScript实现 14
1.DOM 15
2.BOM 15
1.3.4 春秋五霸—令人生畏的浏览器混战和兼容 16
1.Mozilla 16
2.IE 16
3.Safari 17
4.Opera 17
5.Chrome 17
6.浏览器兼容方法 17
1.4 JavaScript运行环境 18
1.4.1 宿主环境 18
1.4.2 执行期环境 19
1.5 JavaScript解析机制 19
1.5.1 预编译 19
1.5.2 执行期 22
1.6 JavaScript执行顺序 23
1.6.1 按HTML文档流顺序执行JavaScript代码 23
1.6.2 预编译与执行顺序的关系 24
1.6.3 按块执行JavaScript代码 25
1.6.4 借助事件机制改变JavaScript执行顺序 26
1.6.5 JavaScript输出脚本的执行顺序 26
1.7 JavaScript应用范围 29
1.7.1 客户端的JavaScript 29
1.7.2 服务器端的JavaScript 30
1.7.3 其他环境的JavaScript 30
1.8 JavaScript开发工具箱 30
1.8.1 关于Web浏览器 30
1.8.2 关于JavaScript编辑器 31
1.8.3 关于JavaScript测试和调试工具 31
1.浏览器的错误控制平台 31
2.Firebug 33
3.HttpWatch 33
4.Web Developer Toolbar 34
5.JavaScript. Debuger 34
第2章 Hello,World—JavaScript开发初体验 35
2.1 杨辉三角—第一个JavaScript程序 35
2.1.1 万物皆有规律—问题分析 37
2.1.2 递归算法设计 38
2.1.3 优化算法设计 39
2.1.4 输出杨辉三角 39
2.2 在网页中嵌入JavaScript脚本 40
2.2.1 使用script元素嵌入脚本 40
1.设置脚本类型 41
2.导入外部脚本文件 41
3.设置脚本的字符编码 42
4.设置脚本延迟执行 42
5.设置脚本在服务器端执行 42
2.2.2 探析外部脚本文件 42
1.导入外部脚本文件 43
2.何时使用外部JavaScript脚本文件 44
2.2.3 注意JavaScript脚本文件的关联性 44
2.2.4 使用接口技术解决JavaScript文件冲突 45
2.2.5 JavaScript文件与CSS文件导入和执行冲突 46
2.2.6