JavaScript语言精粹

当前位置:首页 > 网络编程 > 编程语言与程序设计 > JavaScript语言精粹

出版社:电子工业出版社
出版日期:2012-9-1
ISBN:9787121177408
作者:道格拉斯•克罗克福德 (Douglas Crockford)
页数:155页

作者简介

JavaScript 曾是“世界上最被误解的语言”,因为它担负太多的特性,包括糟糕的交互和失败的设计,但随着Ajax 的到来,JavaScript“从最受误解的编程语言演变为最流行的语言”,这除了幸运之外,也证明了它其实是一门优秀的语言。Douglas Crockford 在本书中剥开了JavaScript 沾污的外衣,抽离出一个具有更好可靠性、可读性和可维护性的JavaScript 子集,让你看到一门优雅的、轻量级的和非常富有表现力的语言。作者从语法、对象、函数、继承、数组、正则表达式、方法、样式和优美的特性这9 个方面来呈现这门语言真正的精华部分,通过它们完全可以构建出优雅高效的代码。作者还通过附录列出了这门语言的毒瘤和糟粕部分,且告诉你如何避免它们。最后还介绍了JSLint,通过它的检验,能有效地保障我们的代码品质。
这是一本介绍 JavaScript 语言本质的权威书籍,值得任何正在或准备从事JavaScript 开发的人阅读,并且需要反复阅读。学习、理解、实践大师的思想,我们才可能站在巨人的肩上,才有机会超越大师,这本书就是开始。

书籍目录

前言................................................................................................................................xv
第1 章 精华.................................................................................................................. 1
为什么要使用JavaScript .......................................................................................................2
分析JavaScript......................................................................................................................2
一个简单的试验场.................................................................................................................4
第2 章 语法.................................................................................................................. 5
空白.......................................................................................................................................5
标识符...................................................................................................................................6
数字.......................................................................................................................................7
字符串...................................................................................................................................8
语句.....................................................................................................................................10
表达式.................................................................................................................................15
字面量.................................................................................................................................18
函数.....................................................................................................................................19
第3 章 对象................................................................................................................ 20
对象字面量..........................................................................................................................20
检索.....................................................................................................................................21
更新.....................................................................................................................................22
引用.....................................................................................................................................22
原型.....................................................................................................................................22
反射.....................................................................................................................................23
枚举.....................................................................................................................................24
删除.....................................................................................................................................24
减少全局变量污染...............................................................................................................25
第4 章 函数................................................................................................................ 26
函数对象..............................................................................................................................26
函数字面量..........................................................................................................................27
调用.....................................................................................................................................27
参数.....................................................................................................................................30
返回.....................................................................................................................................31
异常.....................................................................................................................................31
扩充类型的功能...................................................................................................................32
递归.....................................................................................................................................33
作用域.................................................................................................................................36
闭包.....................................................................................................................................36
回调.....................................................................................................................................39
模块.....................................................................................................................................40
级联.....................................................................................................................................42
柯里化.................................................................................................................................43
记忆.....................................................................................................................................43
第5 章 继承................................................................................................................. 46
伪类.....................................................................................................................................46
对象说明符..........................................................................................................................49
原型.....................................................................................................................................50
函数化.................................................................................................................................51
部件.....................................................................................................................................55
第6 章 数组................................................................................................................. 57
数组字面量..........................................................................................................................57
长度.....................................................................................................................................58
删除.....................................................................................................................................59
枚举.....................................................................................................................................59
容易混淆的地方...................................................................................................................60
方法.....................................................................................................................................60
指定初始值..........................................................................................................................62
第7 章 正则表达式..................................................................................................... 64
一个例子..............................................................................................................................65
结构.....................................................................................................................................69
元素.....................................................................................................................................71
第8 章 方法................................................................................................................. 77
Array ....................................................................................................................................77
Function ...............................................................................................................................83
Number ................................................................................................................................84
Object...................................................................................................................................85
RegExp ................................................................................................................................86
String....................................................................................................................................88
第9 章 代码风格........................................................................................................ 94
第10 章 优美的特性................................................................................................... 98
附录A 毒瘤............................................................................................................... 101
附录B 糟粕............................................................................................................... 109
附录C JSLint ............................................................................................................. 115
附录D 语法图........................................................................................................... 127
附录E JSON............................................................................................................... 138
索引.............................................................................................................................. 149

编辑推荐

《JavaScript语言精粹(修订版)》是介绍JavaScript语言本质的权威书籍,值得任何正在或准备从事JavaScript开发的人阅读,并且需要反复阅读。

内容概要

作者:(美国)道格拉斯·克罗克福德(Douglas Crockford) 译者:赵泽欣 鄢学鸥  道格拉斯·克罗克福德(Douglas Crockford)是一名来自Yahoo!的资深JavaScript架构师,以创造和维护JSON(Javascript Object Notation)格式而为大家所熟知。他定期在各类会议上发表有关高级JavaScript的主题演讲。他也是ECMAScript委员会的成员之一。

章节摘录

版权页:   插图:   第4章 函数 JavaScript设计得最出色的就是它的函数的实现。它几乎接近于完美。但是,想必你也能预料到,JavaScript的函数也存在瑕疵。 函数包含一组语句,它们是JavaScript的基础模块单元,用于代码复用、信息隐藏和组合调用。函数用于指定对象的行为。一般来说,所谓编程,就是将一组需求分解成一组函数与数据结构的技能。 函数对象 JavaScript中的函数就是对象。对象是“名/值”对的集合并拥有一个连到原型对象的隐藏连接。对象字面量产生的对象连接到Object.prototype。函数对象连接到Function.prototype(该原型对象本身连接到Object.prototype)。每个函数在创建时会附加两个隐藏属性:函数的上下文和实现函数行为的代码。 每个函数对象在创建时也随配有一个prototype属性。它的值是一个拥有constructor属性且值即为该函数的对象。这和隐藏连接到Function.prototype完全不同。这个令人费解的构造过程的意义将会在下个章节中揭示。 因为函数是对象,所以它们可以像任何其他的值一样被使用。函数可以保存在变量、对象和数组中。函数可以被当做参数传递给其他函数,函数也可以再返回函数。而且,因为函数是对象,所以函数可以拥有方法。 函数的与众不同之处在于它们可以被调用。 调用 调用一个函数会暂停当前函数的执行,传递控制权和参数给新函数。除了声明时定义的形式参数,每个函数还接收两个附加的参数:this和arguments。参数this在面向对象编程中非常重要,它的值取决于调用的模式。在JavaScript中一共有4种调用模式:方法调用模式、函数调用模式、构造器调用模式和apply调用模式。这些模式在如何初始化关键参数this上存在差异。 调用运算符是跟在任何产生一个函数值的表达式之后的一对圆括号。圆括号内可包含零个或多个用逗号隔开的表达式。每个表达式产生一个参数值。每个参数值被赋予函数声明时定义的形式参数名。当实际参数(arguments)的个数与形式参数(parametem)的个数不匹配时,不会导致运行时错误。如果实际参数值过多了,超出的参数值会被忽略。

图书封面


 JavaScript语言精粹下载 精选章节试读 更多精彩书评



发布书评

 
 


精彩书评 (总计4条)

  •     本书的75页有一段很长的正则表达式作者将其放入了多选结构,注意看,这个多选结构也是个非捕获性分组(因为作者使用了?: ,同时以括号结尾),而他缺少开头的括号 "(" 。就拿中文版说好了,第一版是2009年出的,后来2012出了个修订版。在这么多年的多次印刷和修订都没人发现这个错误(我买的书是2014年印刷的)。在此,我不得不为自己吹一波~~
  •     提到Javascript相关的书籍,有一本书是绕不过去的,那就是Douglas Crockford的《Javascript:the Good Parts》。虽然如今读来,书中的一些最佳实践,毒瘤糟粕看似都是一些Javascript使用的常识,但这不也正是他们早年布道的结果么?但是我相信读罢之后肯定还是会有收获的,比如我就了解到了javascript中的%是取余运算,而并非取模运算,数组的slice/concat方法是浅复制的机制等等。这本书有着老道强烈的个人色彩,你在读这本书的时候,也能感觉到作者表现出的对这门语言的自信,我觉得这是很有意思的。由于成书尚早,书中的大多数内容都是ES3相关的,当然很多最佳实践都已被写入ES5规范中。总之,作为一本深度了解javascript语言好的方面坏的方面的书,很值得一读的。
  •     该书是JavaScript经典著作,属进阶读物,有助于理解JS语言中的一些本质特性。然而由于作者写此书时(2007年前后)ECMAScript标准的第3版(简称ES3)正大行其道,ES5尚在“挣扎”中(2009年末发布),书中的内容皆以ES3标准来写。所以若干年后的今天再看,书中一些内容就有些不妥,甚至是错误(以ES5、ES6标准看),容易给不知情的读者造成困扰。下面罗列了一些我在阅读的时候发现的问题:1. 第20页第1行:根据最新的ES6标准,JavaScript中的简单数据类型有7种:Number,String,Boolean,Object,Null,Undefined,Symbol。其中,新增了Symbol类型;2. 第62页第2行:通过Object.create(arrayArg)方法创建的对象,除继承了原型arrayArg中的值和方法外,同样也继承了其length属性;3. 第70页末和71页初:用正则表达式字面量创建的RegExp对象并非共享同一个单例,在ES5中规定每执行到一个字面量创建的正则表达式便会创建一个新的对象;4. 第91页正中部分:string.search方法不仅可以接受一个RegExp对象,也可以接受一个字符串;5. 第103页中关于保留字的几个例子:比如作者说“object = {case: value};”是非法的语句,因为“case”是关键字故无法直接作为对象的属性名,然而我在浏览器中测试却是合法的;6. 第104页中关于parseInt: ES5中已经废除了“如果第1个字符是0则按照八进制来解析”的语法;......古人说:尽信书则不如无书。读书的时候,读者也应该有自己的思考。诚然,语言都是在不断发展的,ES5、ES6与ES3存在很多类似上文的语法差别,我的目的也不仅仅是罗列一下这样的差异。书中存在错误也属正常,更何况是这种因语言API变更而导致的‘错误‘。这是一本JavaScript的经典书籍(作者也是大牛),读者众多,影响广大,如果读者在阅读的时候不注意所存在的这些问题,就有可能会在实践中造成困扰,甚至是给以后的工作埋下祸根。在如今的互联网大潮中,程序员不得不面对的一个问题就是:编程语言还有实践中所使用的技术都在不断更新,只有保持不断学习才有可能不被大浪湮没!胡诌乱拼,不喜勿喷~~欢迎交流

精彩短评 (总计69条)

  •     很薄的一本书,good parts,不到200页,如果跟JAVASCRIPT权威指南 放在一起简直就是对javascript的讽刺,因为后一本一千多页,哈哈哈
  •     想要提升一下自己的JavaScript基础水平,但偏理论的此书的开篇几章的模式看得好辛苦。后半部分的方法、数组和糟粕还比较好理解。读完觉得此书的精华在于篇末的The Bad Parts.
  •     每个语句都画了状态图,比较新奇。一本非常薄的书,有些对不起价格;还有一些翻译词汇看上去别扭。
  •     刚拿到手,正在阅读,感觉还可以
  •     3天读了一半多,刚开始接触js,对很多细节模糊,本书精粹一一点到(对我来说),相信对有后台编程经验的人有较好的知道作用,尤其是关键的细节,比如==、===区别、this的用法等,但在模块、给prototype添加方法、函数化等地方,我有些参悟不透,或许本书还需对JS有一定的基础上来阅读......
  •     JavaScript并不好学——弱类型、强容错性、设计缺陷、更新快......该书是JavaScript经典著作,属进阶读物,有助于理解JS语言中的一些本质特性。然而由于作者写此书时(2007年前后)ES3标准正大获成功,ES5都尚未普及,所以若干年后的今天再看,书中有些内容(基于ES3)有些不妥甚至是错误(以ES5、ES6标准看),容易给不知情的读者造成困扰。等到ES6普及之后,该书在前端开发人员的心目中的地位一定会打些折扣的吧,毕竟语言也在不断发展。然而毕竟是经典书目,值得五星好评。
  •     修订版跟之前的有啥区别……该喜迎ES6了,之前好多技巧也该慢慢淘汰了。
  •     对我来说这本书最大的好处是对this的5种基本用法掌握了。
  •     翻译得不错
  •     朋友推荐的,稍微有点深奥
  •     怎么说呢,如果对JavaScript不是很了解的可以看看,可能是看的几本书内容都重复了,感觉像把概念温习了一遍。最后那个毒瘤和糟粕还是挺不错的
  •     先说说书的质量,纸张质量挺好。书的内容先不做评论,因为我发现对于要入门的人来说还是有些难以理解。因此打算入手一本《head first javascript》这样的书看看,谁有推荐的入门书籍,也可以给我推荐一下。
  •     前端工程师的圣经
  •     非常不错的书,译者也很用心。在见识过其它书的所谓翻译后,感觉现在看到这么好的翻译都有点感动了。
  •     99.99999%的人都没发现的一个错误~ 书的75页有一段很长的正则表达式      作者将其放入了多选结构,注意看,这个多选结构也是个非捕获性分组(因为作者使用了?: ,同时以括号结尾),而他缺少开头的括号 "(" 。      就拿中文版说好了,第一版是2009年出的,后来2012出了个修订版。在这么多年的多次印刷和修订都没人发现这个错误(我买的书是2014年印刷的)。      在此,我不得不为自己吹一波~~
  •     断断续续翻过,没有看完。随着对 ES6越来越熟悉,觉得这本书的用处已经不大了,毕竟 ES6里面对 JS 不好的特性的改进太大了。
  •     翻译还是挺负责的
  •     前端必备,薄,需要多看几遍,都是精华
  •     二刷,一刷的时候觉着也就一般,为什么评分这么高? 常读常新,会得多就越看得懂
  •     很喜欢,很简单的介绍,但是知识却很丰富,,想提高的可以好好学
  •     js的经典书籍
  •     是时候好好的学习下JavaScript了。读完一遍,这本书需要时不时的翻阅~
  •     有一些内容估计只有到了用多了JS之后才会有更深的感觉。是本好书!
  •     由于 JS 这门语言相当灵活, 写起来没什么约束, 稍不注意就有可能把自己坑了, 因此我们应该学会取其精华去其糟粕
  •     之前对js都是一知半解,脚本语言要想精深还是挺不容易
  •     作者完全站在语言的角度思考js的精华和糟粕部分,书很简洁,内容少而精,不适合当做cookbook,但是是js学者的必备书籍。突出讲了js的精华部分如原型集成、闭包、弱类型等特性还有令人恶心的部分如作用域、全局变量等。
  •     需要再次重读。不过很多缺陷在ES6已经得到了修复。期待下一本ES6的阅读旅程。
  •     四个小时看完
  •     js之蝴蝶树
  •     知道优秀的特性而善加应用,知道糟糕的特性而敬而远之,才能写出可维护的代码。一本小巧的好书。即便不算一本方法论的书,但至少是一本指明写JS方向时各种坑的书。
  •     《JSON 之父的一己之见》
  •     其实有点读不懂的。过段时间要回头再读一遍
  •     javascript进阶必读
  •     作者对JavaScript有着自己的见解, 比看权威指南要轻松愉快很多
  •     在上班的縫隙時間內啃掉了這本小書,精華是講JS原型繼承的部分,這是一本讀過之後不會一下子讓你感覺“鳥槍變炮”的書,卻能夠指出哪些部分是坑,怎樣做是好的習慣,從而避免那些原本覺得是好的特性卻會在不經意間給自己挖坑的地方。畢竟是JSON作者,對語言的理解夠透徹,就像用手術刀精準地劃開一條口子
  •     “很有用但偶尔很危险的特性是最糟糕的部分” 作者认可好的地方是函数式 原型继承和对象字面量(json)
  •     书的纸质很像盗版,还没有防伪标志。希望不妨碍学习就好。
  •     全文感觉像是为了讲JSLint而做铺垫的书,精粹或是糟粕,说白了就是告诉我们应该怎样不该怎样,个人定义为是一本中阶的JavaScript代码规范的书。不是基础书,也不是原理书。不过内容的确精炼,还被大量的"铁路图"占用纸张,基本都是略过
  •     这本书是JavaScript进阶必须的。再深刻理解了原型、闭包之后。
  •     JS简单入门书籍,红宝书看过后无感。
  •     还行值得一买!如果你要学习js,除了一本入门的,还需要这本
  •     cool
  •     为了追求性能上的极致,也为此苦恼了近半年了。
  •     内容不错,书的页数不多,但却是很有内容,言简意赅
  •     没想象中神(也许想太多了),精确大概全在附录里
  •     内容偏理论,更适合有一定基础的人看
  •     用 javascript 来写 javascript ,而不是用 xxx(typeXXX,coffeeXXX) 来写 javascript
  •     除了铁路图,就像标题来说,这是本精粹的集合
  •     这书经常拿来跟犀牛书放一块儿恶搞,但是读完并没有让我觉得这书好到不行。可能因为已经读过犀牛书了,所以再来读这书感觉收获没有想象的那么大。初学者还是不太建议直接读,像书名一样,书里的内容大多是直接指出哪些JavaScript特性好,哪些不好,但并没有更加详细的讲解和分析。所以如果是初学JavaScript个人感觉还是读犀牛书更好。
  •     很薄,很浓缩,正在看
  •     甚是高深。。。
  •     正如书名所示,本书非常的短小精悍,精炼的语句将JavaScript的精粹娓娓道来。正是因为如此,这本篇幅不大的一本书,却包含了大量的干货,需要反复阅读,和亲身实践,才能真正掌握这本书的精粹。
  •     极好,答疑解惑。一位经验丰富的人的经验之谈。
  •     不愧是大师的书。
  •     还可以
  •     对语言的解释真是到位了,让我对js语言层面有了重新认识。。。
  •     在这个IT书籍动辄好几百页的时代,这本书真的对得起“精粹”两个字,一共就1百多页,通篇没有废话,都是要用JS时候必须知道的一些知识点。 适合有一定程序基础用来充电的人,里面有一些概念说的比较模糊,可能需要额外去补充下知识,比如JS的闭包和类似继承的概念那几段,说的有点模糊,部分地方说的还有点乱,可能这也是精简的代价。 翻译的也很不错,可以看出来翻译本书的肯定是有点功底的。 想短期速成的建议买一本。
  •     作者抽取出js的精华部分,并展示了如何更好地编写js代码的模式。获益匪浅,但是由于自己接触此语言还尚浅,所以读起来比较吃力,特别是函数和对象两章还有很多内容不是太理解,所以以后有空还会继续品读这样的经典
  •     内容没看 难道就没好点纸了吗 还卖那么贵 兼职就像盗版啊
  •     内容短小精练,很多地方可能需要多读些代码、积累点经验后再读才能体会到
  •     经典,必须重读
  •     短小精悍的小册子
  •     说实话 可能功力还不够 真心没看懂
  •     能用能用
  •     很不适合初学者
  •     进阶读物,去粗取精,跳过JavaScript的坑
  •     不愧是高手,看函数一章最后几节的自定义方法真叫绝,为js强大的函数和绕来绕去的语法惊讶不已。狂赞简明扼要,让1000页的手册见鬼去吧!
  •     如果有人要入门编程,推荐他看看这本或者python的笨方法系列。
  •     经常拿出来翻阅,薄薄一本书,处处精华
 

农业基础科学,时尚,美术/书法,绘画,软件工程/开发项目管理,研究生/本专科,爱情/情感,动漫学堂PDF下载,。 PDF下载网 

PDF下载网 @ 2024