本书要讲述的内容涵盖JavaScript语言本身,以及Web浏览器所实现的JavaScript API。本书第6版涵盖了HTML5和ECMAScript 5,很多章节重写,增加了当今Web开发的实践的内容,新增的章节包括jQuery、服务器端JavaScript、图形编程以及 JavaScript式的面向对象。本书不仅适合初学者系统学习,也适合有经验的 JavaScript 开发者随手翻阅。
经典的JavaScript工具书
本书是程序员学JavaScript语言和由Web浏览器定义的JavaScript API的指南和综合参考手册。
第6版涵盖HTML5和ECMAScript5
相关阅读>>>
编写高质量代码:改善C程序代码的125个建议
JavaScript编程精解(原书第2版)
Effective Python:编写高质量Python代码的59个有效方法
Effective Ruby:改善Ruby程序的48条建议
David Flanagan是一名程序员,也是一名作家,它的个人网站是。他在O’Reilly出版的其他畅销书还包括《JavaScript Pocket Reference》、《The Ruby Programming Language》、以及《Java in a Nutshell》。David毕业于麻省理工学院,获得计算机科学与工程学位。他和妻子和孩子一起生活在西雅图和温哥华之间的美国太平洋西北海岸。
前言
第1章 JavaScript概述
1.1 JavaScript语言核心
1.2 客户端JavaScript
及时部分 JavaScript 语言核心
第2章 词法结构
2.1 字符集
2.2 注释
2.3 直接量
2.4 标识符和保留字
2.5 可选的分号
第3章 类型、值和变量
3.1 数字
3.2 文本
3.3 布尔值
3.4 null和undefined
3.5 全局对象
3.6 包装对象
3.7 不可变的原始值和可变的对象引用
3.8 类型转换
3.9 变量声明
3.10 变量作用域
第4章 表达式和运算符
4.1 原始表达式
4.2 对象和数组的初始化表达式
4.3 函数定义表达式
4.4 属性访问表达式
4.5 调用表达式
4.6 对象创建表达式
4.7 运算符概述
4.8 算术表达式
4.9 关系表达式
4.10 逻辑表达式
4.11 赋值表达式
4.12 表达式计算
4.13 其他运算符
第5章 语句
5.1 表达式语句
5.2 复合语句和空语句
5.3 声明语句
5.4 条件语句
5.5 循环
5.6 跳转
5.7 其他语句类型
5.8 JavaScript语句小结
第6章 对象
6.1 创建对象
6.2 属性的查询和设置
6.3 删除属性
6.4 检测属性
6.5 枚举属性
6.6 属性getter和setter
6.7 属性的特性
6.8 对象的三个属性
6.9 序列化对象
6.10 对象方法
第7章 数组
7.1 创建数组
7.2 数组元素的读和写
7.3 稀疏数组
7.4 数组长度
7.5 数组元素的添加和删除
7.6 数组遍历
7.7 多维数组
7.8 数组方法
7.9 ECMAScript 5中的数组方法
7.10 数组类型
7.11 类数组对象
7.12 作为数组的字符串
第8章 函数
8.1 函数定义
8.2 函数调用
8.3 函数的实参和形参
8.4 作为值的函数
8.5 作为命名空间的函数
8.6 闭包
8.7 函数属性、方法和构造函数
8.8 函数式编程
第9章 类和模块
9.1 类和原型
9.2 类和构造函数
9.3 JavaScript中Java式的类继承
9.4 类的扩充
9.5 类和类型
9.6 JavaScript中的面向对象技术
9.7 子类
9.8 ECMAScript 5 中的类
9.9 模块
第10章 正则表达式的模式匹配
10.1 正则表达式的定义
10.2 用于模式匹配的String方法
10.3 RegExp对象
第11章 JavaScript的子集和扩展
11.1 JavaScript的子集
11.2 常量和局部变量
11.3 解构赋值
11.4 迭代
11.5 函数简写
11.6 多catch 从句
11.7 E4X: ECMAScript for XML
第12章 服务器端JavaScript
12.1 用Rhino脚本化Java
12.2 用Node实现异步I/O
第二部分 客户端JavaScript
第13章 Web浏览器中的JavaScript
13.1 客户端JavaScript
13.2 在HTML里嵌入JavaScript
13.3 JavaScript程序的执行
13.4 兼容性和互用性
13.5 可访问性
13.6 安全性
13.7 客户端框架
第14章 Window对象
14.1 计时器
14.2 浏览器定位和导航
14.3 浏览历史
14.4 浏览器和屏幕信息
14.5 对话框
14.6 错误处理
14.7 作为Window对象属性的文档元素
14.8 多窗口和窗体
第15章 脚本化文档
15.1 DOM概览
15.2 选取文档元素
15.3 文档结构和遍历
15.4 属性
15.5 元素的内容
15.6 创建、插入和删除节点
15.7 例子:生成目录表
15.8 文档和元素的几何形状和滚动
15.9 HTML表单
15.10 其他文档特性
第16章 脚本化CSS
16.1 CSS概览
16.2 重要的CSS属性
16.3 脚本化内联样式
16.4 查询计算出的样式
16.5 脚本化CSS类
16.6 脚本化样式表
第17章 事件处理
17.1 事件类型
17.2 注册事件处理程序
17.3 事件处理程序的调用
17.4 文档加载事件
17.5 鼠标事件
17.6 鼠标滚轮事件
17.7 拖放事件
17.8 文本事件
17.9 键盘事件
第18章 脚本化HTTP
18.1 使用XMLHttpRequest
18.2 借助
1章
JavaScript概述
JavaScript是面向Web的编程语言。绝大多数现代网站都使用了JavaScript,并且所有的现代Web浏览器——基于桌面系统、游戏机、平板电脑和智能手机的浏览器——均包含了JavaScript解释器。这使得JavaScript能够称得上史上使用最广泛的编程语言。JavaScript也是前端开发工程师必须掌握的三种技能之一:描述网页内容的HTML、描述网页样式的CSS以及描述网页行为的JavaScript。本书能帮助你掌握 JavaScript这门语言。
如果你有其他语言的编程经历,这会有助于你了解JavaScript是一门高端的、动态的、弱类型的编程语言,非常适合面向对象和函数式的编程风格。 JavaScript的语法源自Java,它的一等函数(first-class function)来自于Scheme,它的基于原型(prototype-based)的继承来自于Self。但使用本书学习JavaScript不必去了解那些(Java/Scheme/Self)语言或熟悉那些术语。
“JavaScript”这个名字经常被误解。除了语法看起来和Java类似之外,JavaScript和Java是不同的两种编程语言。 JavaScript早已超出了其“脚本语言”(scripting-language)本身的范畴,而成为一种集健壮性、高效性和通用性为一身的编程语言。近期的语言版本为严谨的大型软件开发定义了诸多新的特性。
JavaScript:名字和版本
JavaScript是由Web发展初期的网景(Netscape)公司创建,“JavaScript”是Sun Microsystem 公司(现在的 Oracle)的注册商标,用来特指网景(现在的Mozilla)对这门语言的实现。网景将这门语言作为标准提交给了ECMA——欧洲计算机制造协会——由于商标上的冲突,这门语言的标准版本改了一个丑陋的名字“ECMAScript”。同样由于商标的冲突,微软对这门语言的实现版本取了一个广为人知的名字“Jscript”。实际上,几乎所有人都将这门语言叫做“JavaScript”。本书也仅仅使用“ECMAScript”来指代语言标准。
在最近10年间,所有的Web浏览器都实现了第3版ECMAScript标准,我们也已经不必再去考虑版本号了:语言标准已经很稳定了,并且被几乎所有浏览器完整地实现了。最近,ECMAScript第5版定义了新的语言标准,在撰写本书时,浏览器已经开始实现它了。除了ECMAScript 3长期保留下来的特性,本书还涵盖了所有ECMAScript 5的新特性。正如我们经常将JavaScript简写成JS一样,ECMAScript 3和ECMAScript 5有时也会简写成ES3和ES5。
当我们提到这门语言本身时,通常所指的语言版本是ECMAScript 3和ECMAScript 5(ECMAScript 4 已经开发了数年,但由于太过庞大,从未过正式版本)。有时会看到JavaScript的版本号(比如 JavaScript 1.5或JavaScript 1.8)。这些是Mozilla的版本号:版本1.5基本上就是ECMAScript 3,后续版本包含了非标准的语言扩展(参照第11章)。,JavaScript解释器或者“引擎”(engine)也有版本号,比如,Google将它的JavaScript解释器叫做V8,在撰写本书时V8引擎近期版本是3.0。
为了有用起见,通常每一种编程语言都有各自的开发平台、标准库或API函数,用来提供诸如基本输入输出的功能。JavaScript语言核心针对文本、数组、日期和正则表达式的操作定义了很少的API,但是这些API不包括输入输出功能。输入和输出功能(类似网络、存储和图形相关的复杂特性)是由JavaScript所属的 “宿主环境”(host enviroment)提供的。这里所说的宿主环境通常是Web浏览器(第12章会介绍两个不基于Web浏览器的JavaScript宿主环境),本书及时部分涵盖了语言本身的特性以及少量的内置API。第二部分讲解了JavaScript如何在Web浏览器中工作,并涵盖基于浏览器的API——这部分也称做“客户端JavaScript”。
本书第三部分是核心API的参考手册。比如,在这部分,可以查找“Array”以获得JavaScript数组操作API的详细信息。第四部分是客户端JavaScript参考手册,比如,你可以在这部分查找“canvas”来获得HTML 5 元素定义的图形编程API。
本书首先讲解初级的基础部分,然后讲解更高级和更抽象的内容。本书的章节也是如此安排以便你能循序阅读。但学习一门新的编程语言绝非易事,当然要完整描述这门语言就没办法苛求知识点的循次渐进,每一种语言特性都和其他特性相互关联,本书的知识点也是前后参照的,有时参照的知识点在后续章节,有时在已经阅读的章节。本章快速介绍了语言核心部分和客户端API及其关键特性,以便你能更方便更深入地阅读理解后续章节。
“本书是JavaScript程序员的必备参考.内容组织得很好,而且非常详细。 ”
—— Brendan Eich,JavaScript之父,Mozilla CTO
“我从本书学到的内容直接影响到我的职业生涯。”
——Andrew Hedges,Tapulous公司游戏工程师
“本书教会了我JavaScript。”
——Tom Robinson,280 North的创始人,Cappuccion的合作创始人
“通过阅读本书,我能地掌握JavaScript这门语言,本书让我受益匪浅。”
——J. Chris Anderson,CouchBase的创始人,Apache CouchDB委员会成员,《CouchDB:The Definitive Guide》一书的作者
“如果让我来推荐一本学习JavaScript的书籍,我一定会推荐本书。”
——Rey Bango,微软客户端Web社区项目主管和jQuery团队成员
这本书还是多看几遍的,再去看其他书时,会感觉很有收获。
书不错,非常非常非常厚。。。学编程之路遥遥无绝期,应该是本很好的工具书
不错,作为从事Web前端开发的工作人员必备书籍。知识点讲得很详细。不管是刚接触这门语言的人来说,还是已经有基础的人员来说,都是值得阅读和收藏的。厚厚的一本书,分量很足。
书的质量还行,对的起这个价格。以读200页,感觉,翻译不太给力。个人觉得适合有一定编程语言基础的读者。讲的挺细,对的起权威二字。
双十一买的。很实惠啊。JS的经典大部头。有人说是字典,其实不完全是字典。内容虽然有点老,但是经典读了还是很有收获。建议入门看这本。
可能因为书太厚吧,三本一起买的,这本封面边角有点折痕,不过好书归好书,看了之后停不下来,有经验的程序员和刚入门的前端都很适合翻阅一遍
内容很详尽,这本书很适合作为工具书翻阅,也适合作为深入理解js的教科书
最新的经典第六版,厚重的犀牛是学习JavaScript最重要的参考资料。非常期待的一本书,学习中。。。
一起买的两本书 一本没到 真是醉了 拖到自动付款 还让我耐心等待 让我等到什么时候啊
物流很快 书很厚 但不重 包装还行 到手的时候破了一点 影响不大 还没看 不知道我这种初学者有没有耐心恒心决心看下去 以及看得懂不
昨天下单,今早就收到了。感觉很好,书厚得和砖头差不多,可以拿来砸核桃了。记得在学校时买过一本javascript的书,到现在都几年过去了,今天买了这本,看完目录觉得完全两个世界了。知识在进步,人也应该进步,不知对于只会蛮看书少动手的我还有没有用。。。
这本书是帮小舅子买的,我自己也大概看了一下,很不错。可以从不同的方面来深入javaScript,对细节及案例做的也不错,新手都能轻易的上手。是一本不可多得的好书。java方面的书怎么都那么贵啊,呵呵!
如果要研究JavaScript,那么这本书是必看书之一!
对于初学者不推荐这本书,内容比较深,如果不静下心来阅读的话很容易放弃。不过犀牛确实是一本极好的书,适合中高级js开发人员,不过初学者如果能认真通篇阅读个四五遍应该也可以
要想进入javascript编程的世界,就从它开始吧。无语伦比的javascript技术书,既可以入门也可以提高,同时还可以当做工具查询。非常细腻的介绍了javascript技术的全部内容。案例丰富全面,翻译的也还可以。强烈推荐。犀牛书!
在网上看着盗版40不到没敢买,结果心思去当当买正版的吧,第一次技术书籍,结果到底买了盗版的印刷错误也太明显了吧!以后我还咋买当当的书,死贵死贵的还是盗版呵呵了,同志们注意了
本书从基础内容开始,首先介绍了js语言的基本特性,篇幅又不过于太大。然后,针对浏览器对象,介绍了使用js可以实现的功能特性,尤其还介绍 jQuery 的基本应用,非常适合初学者入门提高使用。
本来一切都好,但是我写了21号送货,结果打印出的订单上居然没写,然后送货员前些天冒雨送了三次都不在,搞的包装盒都烂掉了,送货员心情也很差,减两星不是给书,是给你们出订单的人
还行吧,我就是看到大家都说这本书好才买的,看了几个小时,发现看懂的都是我早就会的,不会的怎么也看不懂的,书本的纸张还行,应该是正版吧。就是比电子书好的多,就是价格有点贵,能便宜点就好了。。。
我想说……我还没看,感觉还可以……但是,但是……为啥两本书的包裹外面也没有收货人姓名,前台的同事,都不知道是谁的,没有让我去前台领,是我自己打电话问今天下午能不能送到,快递员跟我说已经放前台了,我去找才看见的……不知道是啥原因……
包装不错,物流服务真的好!这个订单最初由于我的失误,收货地址填错了,幸好当当的服务到位,在很短的时间内将两本书寄到我当前的地址。很抱歉给你们造成的麻烦,同时也感谢你们的服务,真棒!
这本书送到时书角有破损,有点伤心。不过这本书既适合入门,也适合深入,比其他什么从入门到精通的书性价比高太多了,书的内容简明扼要,令人能够快速掌握,排版也是我买的所有书中最喜欢的方式。
纸质内容都不错,简直是宝典,前三分之一是JavaScript语言知识讲解,中间三分之一是客户端JavaScript,后面三分之一是参考手册,看这本书最好有些基础,如果没基础要多看几遍才会掌握。唯一的不足就是太厚太沉了,不方便
和想象中的一样厚,感觉很详细,值得收藏,学习工作的时候都可以翻翻看。淘宝前端团队翻译也是吸引我购买的理由之一,毕竟自己是学电子商务的,对淘宝还是很有感情的。希望自己能有耐心把这本书看完,大家都说好再版这么多次应该是经典。