资料下载网
首页 计算机 考试教辅
JavaScript语言精粹_Douglas Crockford_赵泽欣译 pdf电子书免费下载
首页 > 计算机 > javascript > JavaScript语言精粹_Douglas Crockford_赵泽欣译 pdf电子书免费下载

《JavaScript语言精粹_Douglas Crockford_赵泽欣译》pdf电子书免费下载


下载方式一:

百度网盘下载地址:https://pan.baidu.com/s/10E4UX-cu9F9HTwRDIA7btQ
百度网盘密码:1111

下载方式二:

http://ziliaoshare.cn/Download/ac_123539_pd_JavaScriptYYJC_DouglasCrockford_ZZXY.zip

 


JavaScript语言精粹_Douglas Crockford_赵泽欣译

作者:Douglas Crockford_赵泽欣译

页数:167

出版社:empty

《JavaScript语言精粹_Douglas Crockford_赵泽欣译》介绍

内容简介

Jaa erp t曾是“世界上最被误解的语言”, 因为它拟负太多的特性, 包的交互和失取的设计, 但A jom的到米, JavaScript“从最受误解的编程语言演变为最流行的语言”, 达除了幸运之外, 也证明了它其实是一门优秀的语言。Douglas Crock fond在本书中刺开了Java5cript污的外衣, 触离出一个具有更好可性, 可读性和可维护性的Java Seri pt子集, 让你看到一门优雅的、轻的和非常官有表现力的进言。作者从语法, 对象、函数、承、数组、正则表达式、方法、样式和优美的特性这9个方面来量现这门语言真正的精华部分,通过它们完全可以构建出优雅高效的代码。作者还语过附录列出了这门语言的相粕和鸡动部分,且告诉你知何避免它们。最后还介绍了J SLint, 通过它的检验, 能有效地保障我们的代码品质,这是一本介绍Java Ser it语言本的权威书籍, 值得任何正在成准备从事Ju vaSe rip t开发的人阅读, 并且要反复阅读。学习、理解、实践大师的思想,我们才可能站在巨人的肩上,才有机会超越大师,这本书就是开始,978-0-596-51774-8Java5cript:The C lood Parts, Copyright D2008byO'Reily Modis, Inc.Simpli hed Chine ac edtion, jointly publi hed by O'Rely Modi Inc.and Pub i hing House of Etc tronics Industry2009.Author izod translation of the English edit on, 2009O'Reilly Media In e., the owner of all rights to publish and sellthe sameAll rights reserved including the rights of re peo duct cain whole or in part in m my form.本书中文体版专有出版权由O Reily Med is, Inc.授子电子工业出版社, 未经许可, 不得以任何方式复制成抄表本书的任何部分,版权易合同登记号图字:01-2009-0879图书在版编目(CIP) 数据JavaScript语言粹/(美) 克罗克槽裤(Crockford, D) 著:赵泽欣, 那学鹊译, 一北京:电子工业出版社, 2009.4书名原文Java Scrip:The Good PasISBN 978-7-121-08437-9LJ-1.①克一赵一-.II JAVA语言一程序设计IV.TP 312中国版本图书馆CIP数据核字(2009) 第030107号责任编辑:陈元玉项目管理:梁品出版发行:电子工业出版社凡所购买电子工业出版社图书有损问题,请肉购买书店调换,若书店售缺,请与本社发行部联系,联系及知质量投诉请发鲜件至zt@phecom.n,盗版侵权举报请发部件至doqqOphiom.cn.期:北京市天竺颖华印刷厂订:三河市鑫金马印装有限公司北京市海淀区万路173信箱邮编100036本:787x9801/16印张:11字数:175千字次:2009年4月第1次印定价:35.00元电话:(010)88254888,务热线:(010)88258888.

译者序

Douglas Crockford是一位大师。翻译大师的作品,一边是感到万分的荣幸,一边也是兢兢小心,因为吉尔伯特·海特(美国教育家)曾经说过:写了一本很糟糕的书只是犯错而已,而把一本好书翻译得很精糕则是犯罪。但这样的大师经典之作,即便是管着犯罪的风险,也值得翻译出来并推荐给大家,一直到现在, 依然有很多资深的开发人员对JavaScript存有偏见, 秦歌和我, 分别负责雅虎口碑网和淘宝网的前端开发组,对此的感受更为深刻,但即便是他们也不得不承认,JavaScript正日益成为互联网中最普及和最重要的开发语言。Crockford曾写过很著名的一篇文章——《JavaScript:世界上最被误解的语言》。建议看到这里的所有读者都找来这篇文章(http//jauascriptcrockford.com/jupascript.htl) 并仔细阅读。早期的商业原因和规范缺欠给JavaScript这门语言蒙上了阴影:Copy+Paste式激用也让JavaScript显得廉价不堪:更相糕的是, 还有大量不负责任的书籍把蹩脚的用例奉为正统,印成了铅字, 让新手们从一开始就走上了政途。不可否认, JavaScript自身确实存在着不少瑕疵, 但瑕不掩瑜。Crockford为此凭借他广博的学识和丰富的经验提炼出了JavaScript的精华子集。开发人员只要在这个子集的范畴中编程, 就既能使用JavaScript强大的表现力和卓越的动态性,又能免去许多无蜡的调试烦恼和安全隐忧。这本书很薄,但承载的内容却非常丰厚和深人,翻译的过程中我也常感汗颜,原来自诩对JavaScript颇为了解的我深刻感受到自己知识面的浅薄和不完整, 于是翻译的过程也成为了自己检讨和学习的过程, 收获颜丰, Crockford在前言中告诚大家, 这本书是需要反复阅读的。我们同样推荐所有的读者这样做,我想每一个热爱技术的开发人员都希望自己有一天成为某个领域的大师。我通过翻译大师的著作也得到了一个启示,“取其精华,去其槽柏”本就是前人告诉我们的学习态度与方法,对日新月异的IT领域来说更该如此。当我们面对这些层出不穷的新技术新理念时,不要匆忙地照单全收或全盘否定。找到最适合工作或自己最感兴趣的技术,并用科学的方法潜下心来坚持学习和研究,我们同样也可以成为大师!“大师牛人,宁有种乎?”最后,我要感谢博文视点的编辑赵士威在本书翻译过程中给子我们的莫大帮助。还有周筠老师, 她爽朗的笑声让人备感来切。我还要感谢我的同事, 来自美国NCSU的晓荷, 博采中外的她给我建议, 把JavaScript的“好、中、坏”特性翻译为更贴切的“精华、鸡肋、精粕”。当然,家中的领导(负责接管稿费)是一定要特别感谢的,相信我,如果你身后没)m有一位善解人意的女人,还是不要去做翻译的好,这是一本关于JavaScript编程语言的书, 它的读者是那些因为偶然事件成好奇心驱使面首次冒险进人JavaScript世界的程序员。它也是为那些处于JavaScript新手水平井准备更深入了解这门语言的程序员准备的。JavaScript是一门令人惊讶的强大语言, 它不按常规给出一些挑战,但是作为一门轻量级的语言,它是易于掌握的。在这里我的目标是帮助你学习JavaScript的编程思想。我将展示这门语言的组成部分, 井且让你逐步上手,学会如何组合各个部分,这不是一本参考书,它不会对这门语言和它的怪进行全面而详尽的介绍,它不包含你希望知道的一切。那些东西你很容易在网上找到。反之,这本书仅包含那些真正重要的东西,这本书不是写给初学者的, 我希望某天写一本叫《JavaScript:第一部分(Java Scrip:The FirstParts) 》的书, 但是此书非彼书。这也不是一本关于Ajax或Web编程的书, 本书关注的就是Javi Script, 它只是Web开发者必须掌握的一门语言。这不是一本傻瓜书。这本书虽然薄,但知识点密集。它包括了大量的内容。如果为了理解它而不得不反复阅读,请别沮丧。你的付出将会有所回报。

这本书是为了帮助你做好工作。一般来说,你可以在程序和文档中使用本书中的代码。你无须联系我们获取许可,例如,使用来自本书的几段代码写一个程序是不需要许可的。出售和散布O'Reilly书中用例的光盘(CD-ROM) 是需要许可的。通过引用本书和用例代码来回答问题是不需要许可的。

当我还是一个初出茅庐的程序员时,我想了解所用到的语言的每个特性,我写程序时会尝试去使用所有的特性,我觉得这是炫耀的好方法,而我也的确出了不少风头,因为我对各个特性了如指掌,谁有问题我都能解答,最终,我认定这些特性中有一部分特性带来的麻烦远远超出它们的价值,其中,一些特性是因为规范很不完善,从而可能导致可移植性的问题:一些特性会导致生成难以理解和修改的代码:一些特性促使我的代码风格过十复杂且易于出错:还有一些特性就是设计错误。有时候语言的设计者也会犯错。大多数编程语言都有精华部分和鸡肋部分。我发现如果只使用精华部分而避免使用鸡肋的部分,我可以成为一个更好的程序员。毕竟,用糟糕的部件怎么可能构建出好东西呢?标准委员会想要移除一门语言中的缺陷部分,这几乎是不可能的,因为这样做会损害所有依赖于那些鸡肋部分的槽糕的程序,除了在已存在的一大堆缺陷上堆积更多的特性,他们通常无能为力。井且新旧特性并不总是能和谐共处,可能从而产生出更多的鸡肋部分,但是,你有权力定义你自己的子集。你完全可以基于精华部分去编写更好的程序。JavaScript中鸡肋部分的比重超出了预料。在短到令人吃惊的时间里, 它从不存在发展到全球采用,它从来没有在实验室里被试用和打磨。当它还非常粗糙时,它就被直接集成到网景的Naviga or 2润览中, 随着Java T*的小应用程序-(a vaT appl ts) 的失J nv aS rpt变成了默认的“网页语言”, 作为一门编程语言, JavaScript的流行几平完全不受它的质量的影响。好在Java Ser pt有一些非常精华的部分。在JavaScript.中, 美丽的、优的, 有表现力的语言特性就像珍珠和一堆鱼目混杂在一起一样:JavaScript最本质的部分被深深地隐藏着,以至于多年来对它的主流观点是:JavaScript就是个丑陋的、没用的玩具。本书的目的就是要揭示Java Seri pt中的精华, 让大家知道它是, 门杰出的动态程语言。JavaScript就像一块大理石,我要切除那些不好的特性直到这门语言的真实的木质自我显露出来。我相信

我精细琢出来的优雅子集大大地优于这门语言的整体,它更可靠。更易读。更易于维护这本书不打算全面描述达门语言。反之,它将专注在精华部分上,间时会偶尔警告要去避免鸡肋的部分,这里将被摘述的子集可以用来构造可靠的、易读的大小程序。通过仅专注m于精华部分,我们就可以缩短学习时间,增强健壮性,并且还能插救一些树木(译注1),或许只学习精华部分的最大好处就是你可以不用考虑鸡肋的部分,忘掉不好的模式是非常困难的。这是一个非常痛苦的工作,我们中的大多数人都会很不愿意面对。有时候,制定语言的子集是为了让学生更好地学习, 但在这里, 我制定的JavaScript子集是为了让专业人员更好的工作。1.1为什么要使用JavaScriptJavaScript是一门重要的语言, 因为它是web浏览器的语言。它与浏览器的结合使它成为世界上最流行的编程语言之一, 同时, 它也是世界上最被轻视的编程语言之一。浏览器的API和文档对象模型(DOM) 相当糟糕, 导致JavaScript到不公平的指责。在任何语言中处理DOM都是一件痛苦的事情, 它的规范制定得很拙劣并且实现互不一致。本书很少涉及DOM, 我认为写一本关于DOM的精华的书就像执行一项不可能完成的任务。JavaScript是最被轻视的语言, 因为它不是所谓的主流语言(SOME OTHER LANGUAGE)(译注2) , 如果你擅长某些主流语言, 但却在一个只支持JavaScript的环境中编程, 那么被迫使用JavaScript确是相当令人厌烦的, 在那种情形下, 大多数人觉得没必要去先学好JavaScript, 但结果他们会惊讶地发现, JavaScript跟他们宁愿使用的主流语言有很大不同,而且这些不同至为关键。JavaScript令人惊异的事情是, 在对这门语言没有太多了解, 甚至对编程都没有太多了解的情况下,你也能用它来完成工作。它是一门拥有极强表达能力的语言。当你知道要做什么时,它甚至能表现得更好。编程是很困难的事情,绝不应该在对此一无所知时便开始你的工作。1.2分析JavaScriptJavaScript建立在一些非常好的想祛和少数非常坏的想法之上。那些非常好的想法包括函数、弱类型、动志对象和一个富有表现力的对象字面量表示法。那些坏的想法包括基于全局变量的编程模型。评注1:作者这里幽默的暗示这本书只关注精华部分,所以书变薄了,用的纸张少了,就可以少译注2:专指一些主流语言, 像C, C++、Java, Perl, Python,2|第1章:精华

h use mt的函数是(主要) 基于词法作用城(x al cpg) 译注3) 的顶极对象, la as pl网是第一个成为主流的I a mbda(译注4) 语言, 实际上, 相对Java面言, JavaScript与Lisp(译注5)和Schee(译注6)有更多的共同点。它是被着C外衣的Lisp.这使得JavaSerpt.com成为一个非常强大的语言,现今大部分编程语言中都流行要求强类型。其原理在于强类型允许编译器在编译时检测铅误, 我们能越早检测和修复错误, 付出的代价就越小。JavaScript是一门弱类型的语言, 所以JavaScript编译器不能检测出类型错误, 这可能让从强类型语言转向JavaScript的开发人员感到恐慌。但事实证明,强类型并不会让你的测试工作轻松。并且我在工作中发现,强类型检查找到的那种错误并不是令我头痛的错误。另一方面,我发现弱类型是自由的,我无须建立复杂的类层次,我永远不用做强制造型,也不用疲于应付类型系统以得到想要的行为,JavaScript有非常强大的对象字面量表示法。通过列出对象的组成部分, 它们就能简单地被创建出来。这种表示法是促使我创立流行的数据交换格式——JSON的灵感(译注7) .(附录E中将会有更多关于JSON的内容。)原型继承是JavaScript中一个有争议的特性, JavaScript有一个无类别的(class-free) 对象系统,在这个系统中,对象直接从其他对象继承属性,这真的很强大,但是对那些被训练使用类去创建对象的程序员们来说, 原型继承是一个陌生的概念。如果你尝试对JavaScript直接应用基干类的设计模式, 你将会遵受挫折。但是, 如果你学习使用JavaScript的原型本质,那么你的努力将会有所国报。JavaScript在关键思想的选择上饱受非议。虽然在大多数情况下, 这些选择是合适的, 但是有一个选择相当精糕:JavaScript依赖于全局变量来进行连接。所有编译单元的所有顶级变量被摄合到一个被称为全局对象的公共命名空间中,这是一件糟糕的事情,因为全局变量是魔鬼, 井且在JavaScript中它们是基础性的。幸好, 我们接下来会看到, JavaScript也给我们提供了缓解这个问题的处理方法,在少数情况下,我们不能忽略鸡肋的部分。另外还有一些不可避免的箱粕,当涉及达些部分时,我会将它们指出来。它们也被总结在附录A中。但是我们将成功地避免本书中提到的大多数鸡肋的部分,它们中的大部分被总结在附录B中。如果你想学习那些鸡肋的部分及如何拙劣地使用它们, 请参阅任何其他的JavaScript书籍,译注3:Jav中的中词法型物用更不是动境分作用线的。具体内译注4:L清算是品用酷两装软凳译注5.LISP(金名L译注6:S chene译注7:架Tss6N 8.0frojaNon的创立者。官方网站中文网是htp/定义Iv aS pt(又称Si) 的标椎是ECM ASp编程语言第3, 它可以从hp:/w网ecmg-international.org/pirblications/iles/ecma-st/ECMA-262.pdf获得,本书中描述的语言是ECMA Seri pt的一个适当的子集。本书并不描述整个语言, 因为它不包含鸡肋的部分, 这里om的处理并没有穷尽,一些模棱两可的情况被回避了。在实践中,你也应该这样,模校两可的情况会带来凤险和麻烦事,附录C描述了一个叫J SLint的编程工具, 它是一个Java Seri pt解析器, 它能分析JavaScript问题并报告它包含的缺点。J SLint提供了一般在JavaScript开发中缺少的严谨性。它能让你JavaScript是一门有许多差异的语言, 它包含很多错误和尖锐的边角(sharp edges) , 所以你可能会疑盛:“为什么我要使用JavaScript?”有两个答案。第一个是你没有选择, Web已变成一个重要的应用开发平台, 而JavaScript是唯一一门所有浏览器都可以识别的语言。很不幸, Java在浏览器环境中失败了, 否则想用强类型语言的人来说就有其他选择了。但是Java确实失败了, 而JavaScript仍蓬勃发展着, 这恰恰说明JavaScript确有其过人之处。另一个答案是, 尽管JavaScript有缺陷, 但是它真的很优秀。它既轻量级又富有表现力, 并且一旦你熟练掌握了它,就会发现函数式编程是一件很有趣的事。但是为了更好地使用这门语言,你必须知道它的局限。我将会无情地揭示它们。不要因此而气馁。这门语言的精华部分足以弥补它鸡肋的不足,如果你有一个Web浏览器和任意一个文本编辑器, 那么你就有了运行JavaScript程序所需要的一切, 首先, 请创建一个HTML文件, 可以命名为program.html:接下来, 在同一个文件夹内, 创建一个脚本文件, 可以命名为program, js:下一步, 用你的润览器打开你的HTML文件去查看结果。


《JavaScript语言精粹_Douglas Crockford_赵泽欣译》目录

第1章精华.........................

为什么要使用Java Seri pt.....

1.2分析JavaScript..................

1.3

一个简单的试验场.....

第2章语法......

第3章对象.............

2.1空白...........

2.2标识符...........

2.3数字.......

2.4

字符串....

2.5语句............

2.6表达式.......

2.7字面量.......

2.8函数......

3.1对象字面量.....

3.2检索...........

3.3更新............

3.4引用.......

3.5原型.....

3.6反射.....

3.7枚举.................

3.8..........

3.9减少全局变量污染.....

第4章

www.TopSage.com

www.TopSage.com

函数........................

.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级联...

4.14套用.......

4.15记忆............

第5章继承..............

5.1伪类...........

5.2对象说明符....

5.3原型.......

5.函数化.......

5.5部件......

第6章数组.........

6.1数组字面量......

6.2长度.............

6.3刷除.........

6.4枚举............

6.5混滑的地..........

6.6方法............

6.7维度.......

第7章正则表达式......

7.1一个例子.......

7.2结构..............

7.3元素...........

第8章方法..........

第9章代码风格...

第10章优美的特性....

附录A:相柏....

附录B:鸡肋...

附录C:JSL in...

附录D:语法图.....

附录E:JSON.......

索引.........

计算机


python
AI人工智能
javascript
计算机网络/服务器
数据库技术
计算机F

考试教辅


考研考博
英语四六级

沪ICP备18046276号-5
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:15618918379