JavaScript语言精粹

出版时间:2009年  出版社:电子工业出版社  作者:Douglas Crockford  页数:155  译者:赵泽欣,鄢学鹍  
Tag标签:无  

前言

  Douglas crockford是一位大师。  翻译大师的作品,一边是感到万分的荣幸,一边也是兢兢小心。因为吉尔伯特·海特(美国教育家)曾经说过:写了一本很糟糕的书只是犯错而已,而把一本好书翻译得很糟糕则是犯罪。但这样的大师经典之作,即便是冒着犯罪的风险,也值得翻译出来莘推荐给大家。一直到现在,依然有很多资深的开发人员对JavaScript存有偏见。秦歌和我,分别负责雅虎口碑网和淘宝网的前端开发组,对此的感受更为深刻。但即便是他们也不得不承认,JavaScript正日益成为互联网中最普及和最重要的开发语言。  crockford曾写过很著名的一篇文章——《Javascript:世界上最被误解的语言》。建议看到这里的所有读者都找来这篇文章并仔细阅读。早期的商业原因和规范缺欠给JavaScript这门语言蒙上了阴影,copy+Paste式滥用也让JavaScript显得廉价不堪;更糟糕的是,还有大量不负责任的书籍把蹩脚的用例奉为正统,印成了铅字,让新手们从一开始就走上了歧途。不可否认,JavaScript自身确实存在着不少瑕疵,但瑕不掩瑜。crockford为此凭借他广博的学识和丰富的经验提炼出了JavaScript的精华子集。开发人员只要在这个子集的范畴中编程,就既能使用JavaScript强大的表现力和卓越的动态性,又能免去许多无端的调试烦恼和安全隐忧。

内容概要

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

书籍目录

前言第1章 精华1.1 为什么要使用JavaScript1.2 分析JavaScript1.3 一个简单的试验场第2章 语法2.1 空白2.2 标识符2.3 数字2.4 字符串2.5 语句2.6 表达式2.7 字面量2.8 函数第3章 对象3.1 对象字面量3.2 检索3.3 更新3.4 引用3.5 原型3.6 反射3.7 枚举3.8 删除3.9 减少全局变量污染第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 级联4.14 套用4.15 记忆第5章 继承5.1 伪类5.2 对象说明符5.3 原型5.4 函数化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:JSLint附录D:语法图附录E:JSON索引

章节摘录

  第1章 精华  1.1 为什么要使用JaVaScript  JavaScript是一门重要的语言,因为它是web浏览器的语言。它与浏览器的结合使它成为世界上最流行的编程语言之一。同时,它也是世界上最被轻视的编程语言之一。浏览器的API和文档对象模型(DOM)相当糟糕,导致JavaScript遭到不公平的指责。在任何语言中处理DOM都是一件痛苦的事情,它的规范制定得很拙劣并且实现互不一致。  很少涉及DOM,我认为写一本关于DOM的精华的书就像执行一项不可能完成的任务。  JavaScript是最被轻视的语言,因为它不是所谓的主流语言(SOME OTHER LANGUAGE)(译注2)。如果你擅长某些主流语言,但却在一个只支持JavaScript的环境中编程,那么被迫使用JavaScript:确是相当令人厌烦的。在那种情形下,大多数人觉得没必要去先学好JavaScript,但结果他们会惊讶地发现,JavaScript跟他们宁愿使用的主流语言有很大不同,而且这些不同至为关键。  JavaScript令人惊异的事情是,在对这门语言没有太多了解,甚至对编程都没有太多了解的情况下,你也能用它来完成工作。它是一门拥有极强表达能力的语言。当你知道要做什么时,它甚至能表现得更好。编程是很困难的事情。绝不应该在对此一无所知时便开始你的工作。

编辑推荐

  大多数编程语言都包含精华与鸡肋。JavaScript在被改进之前就已匆忙地开发和发布了,因此鸡肋部分的比重超出了预料。这本权威的著作筛去了Javascript大多数不好的特性,介绍了这门语言就整体而言具有的更好的可靠性、可读性和可维护性的JavaScript的子集,您能用这些子集创建真正可扩展的和高效的代码。  作为在开发社区中被尊重的JavaScript专家,作者Douglas crockford鉴别出了大量的好想法,这些好的想法可使JavaScript成为一门杰出的面向对象的编程语言。不幸的是,这些好想法(比如函数、弱类型、动态对象和一个富有表现力的对象字面量表示法)与那些不好的甚至明显很糟糕的想法(比如基于全局变量的编程模型)混合在了一起。  Java小应用程序(Java applets)失败后,JavaScript变成了网页的默认语言,这使它的流行几乎完全不受它作为一门编程语言的质量的影响。在《JavaScript语言精粹》中,Crockford最终从迷雾中挖掘出一大堆良好意图和愚蠢错误,让您仔细体会JavaScript真正优雅的部分,其中包括:  语法 继承 方法 对象 数组 样式 函数 正则表达式 优美的特性  在《JavaScript语言精粹》中,您将会发现一门美丽的、优雅的、轻量级的和非常富有表现力的语言,它使您创建高效的代码,不管您编写代码的目的是管理对象库还是仅仅使Ajax运行得更快。如果您为web开发站点或应用程序,这《JavaScript语言精粹》绝对应该是必备的。

图书封面

图书标签Tags

评论、评分、阅读与下载


    JavaScript语言精粹 PDF格式下载


用户评论 (总计33条)

 
 

  •   东西不错,质量好,买了绝对不后悔
  •   图书就没法评了,看价格吧
  •   书好薄啊
  •   精华javascript经典
  •   很薄很不错
  •   书虽然很薄,但都是精华
  •     After a period of suspension, I finally finished this book (well, only the parts that interest me), but for the sake of finishing it. I am never a fan of JavaScript. Even after reading this book, I am still not impressed by the language, although I am amazed by the author's efforts to extract good parts from a poorly-designed or lack-of-design language. So my three stars actually go to the author. My opinion remains: Java Script is Just Stupid, period!
  •      这是一本很需要花时间花心思看的好书。
       最棒的地方是,两三页纸就把我之前一直一知半解的closure讲的清清楚楚。大赞。
  •      这本书彻底改变了我对javascript的认识,直到读完,我才发现自己以前的理解完全是肤浅、错误的,我发现了自己对于javascript的无知。这本书和《javascript权威指南》相比,既有前者的权威性,又有自己独特的精简、凝练性。相比于《javascript权威指南》,对有其他语言编程经验的程序员来说,是本很好的javascript入门读物,绝对能学到最正宗的东西。
  •     js之所以被人误解,有些人推崇,有些人瞧不上。
      是因为:
      在语言设计上,其借鉴了多种语言,函数式和命令式语言都有,原型链式语言,多年后,在我了解了sicp后,才发现,原来js一些设计思路,如此的倾向lisp
      
      js的创造者应该是语言的专家,通晓编程语言的设计,但当年可能时间比较仓促,留下了不少坑。
      
      这一切导致,想真正了解js需要一定的门槛,主流的面向对象类的语言经验在此又变得不太有用。
      
      在有了几年的编码经验,了解了一些编程语言后,再看js变得清晰了许多
      
      本书短小精悍,很好的点出js的良与粕,适合有一定编程经验的人看。
      
      
  •     写得很好,翻译得不咋地,太烂了,。。。。。。。。。。。。。。。。。。。哎,到底要多少字。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。写得很好,翻译得不咋地,太烂了,。。。。。。。。。。。。。。。。。。。哎,到底要多少字。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。写得很好,翻译得不咋地,太烂了,。。。。。。。。。。。。。。。。。。。哎,到底要多少字。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。写得很好,翻译得不咋地,太烂了,。。。。。。。。。。。。。。。。。。。哎,到底要多少字。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。写得很好,翻译得不咋地,太烂了,。。。。。。。。。。。。。。。。。。。哎,到底要多少字。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。写得很好,翻译得不咋地,太烂了,。。。。。。。。。。。。。。。。。。。哎,到底要多少字。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
  •     
      <javaScript语言精粹>这本书写的很好,可以说句句是精华。这么薄的一本书讲JavaScript的特点介绍的非常清楚,是我对JavaScript的认识更加的深入。以前总觉得函数式编程很难理解,但是看了这本书以后我觉得对其有了一个新的认识。严格意义上说JavaScript并不仅仅是一门函数式编程语言,书中有一句话对它的特性做了一个精彩的描述:JavaScript的许多特性都借鉴自其他语言。语法借鉴自java,函数借鉴自Scheme,原型继承借鉴自Self,而JavaScript的正则表达式特性则借鉴自Perl。
      
      JavaScript的简单类型有:数字、字符串、布尔值、null值和undefined值。在JavaScript中,数组是对象,函数是对象,正则表达式是对象。可以使用对象字面量来创建一个新对象: var empty_object = { };
      
      每个对象都连接到一个原型对象,并继承其属性。使用typeof可以确定属性的类型。使用delete可以删除对象的属性。
      
      函数也是对象,其原型对象为Function.prototype.函数有一个call属性,当JavaScript调用函数时,可理解为调用该函数的call属性。函数有四种调用模式:方法调用模式,函数调用模式,构造器调用模式和apply调用模式。这些模式主要是初始化关键字this存在差异,分别是:调用对象,全局对象,隐藏连接到该函数的prototype成员的新对象,apply方法的第一个参数。当函数被调用时,会得到一个arguments数组,可以通过它访问传递给该函数的所有参数。一个函数总是会返回一个值,如果没有制定返回值,则返回underfined.
      
      JavaScript中的数组其实是一种伪数组。她把数组的下标转变成字符串,用其作为属性。可以通过数组字面量来声明一个数组:var empty = [];数组第一个值将获得属性名0,第二个属性名将获得属性名1,以此类推。
      
      JavaScript中的正则表达式也是一个对象。正则表达式的分组有4中:捕获型,使用圆括号包括;非捕获型,使用(?:前缀;向前正向匹配,使用(?=前缀;向前负向匹配,使用(?!前缀。
      
  •     很薄的一本书,加上封面才只有172页。正文100页,其余为附录。
      
      我本来就是js菜鸟,扫了一遍正文(10章)觉得收获不大。当然书是好书,特别是后面的附录。
      
      本书配合JSLint使用,效果应该会很好。
      
      几个细节:
      1. 作者是莎翁的粉丝。
      2. Syntax Diagrams没看懂。
  •     不少编程的好书都会在每一章的导语处引用文学作品,这本书引用的是莎翁。本人学JS仅仅是因为好奇(= =!),看这本书比较薄所以就想试着读读。没想到这书能把JS语言最优雅的部分展现得淋漓尽致,忽略一些无关紧要的例如DOM的实例,作者只关心语言本身,并向语言本身致敬。本书的最精彩之处个人认为是对闭包的应用。
  •     看完一遍Javascript语言精碎,有些内容没有吃透,总体受益匪浅。现已成为我开发Javascript的标杆。
      现在开发的JS代码较之从前有了质的飞跃。模块化程变度高,抽出来也容易复用。
      计划年末代码量与经验积累到一定程度之后重读一遍,或许能理解现在还未吃透的部分。
  •     if you want to read this book, you can almost skip the first two chapters, the first chapter is about why good parts, why JS is a great language. chapter 2 is merely a language syntax reference, i think this is totally against what the author indicated early that this book would not try to be exhaustive or comprehensive.
      
      the "good parts" of this book, in my humble opinion, are chapter 3, 4, 5. about object, function and inheritance respectively. some sections are interesting to know, such as curry, memoization, but i don't think they are heavily used in production systems. even about the inheritance, author put a lot of emphasis on variable privacy and functional inheritance, there are some second opinion online, i don't know for now, which is better. the sections bout invocation patterns are good, i didn't know that.
      
      the rest chapters are too brief to be valuable.
      
      hope this information helpful to other readers.
      
      i will move on to jQuery, Ext-JS, templating, closure and Ajax next.
      
  •     鄢学鵾 还是 鄢学鹍
      
      抱歉,你的评论太短了
      抱歉,你的评论太短了
      抱歉,你的评论太短了
      抱歉,你的评论太短了
      抱歉,你的评论太短了
      抱歉,你的评论太短了
      抱歉,你的评论太短了
      抱歉,你的评论太短了
  •     我不是js的初学者(也不是开发者,是自学者...),但是看这本书的确感觉有点吃力,难道是因为没学过编译原理(嘻嘻..),这本书的确用到了编译原理的一些概念,而且作者貌似用js也开发过一个类似编译器的东西(JLint?)。
      总的来说,虽然是the good part,但是如果没把the whole part搞清楚的还是很难读通这本书的。
      但是大牛们写的书还都是很深刻的,不光讲语法,然后举几个白痴的例子就完事。读这种书能够加深对语言本身的理解。比如书中写到js中的数组不是数组,只是个有数字属性和length属性的对象,与C啦,java啦中的数组不是一回事。我读js的书其实挺多的,但是这个观点还是第一次看到。而且书中列举了好多js中自带函数的可能实现方式,也很有启发。
      总之,现在只能算个大概看完,等几年之后(如果我还搞js的话)再看或许会有更大的收获。
  •     刚买了书,挺兴奋的。我同学看到了,说他也喜欢这书,不过他看了一点觉得有地方不太明白,就找了个猎豹网校,那里有视频课程,有老师教的。他说那样学比自己看书直观多了。我要比较一下再定了。
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
  •     当一个作者能把一个语言的丑陋一面揭露出来,就说明他对这门语言的功力不浅。同样的例子就是大名鼎鼎的THINKING IN JAVA
      
      作者是对美感有追求的人,这从每个章节一开始的莎士比亚选段而用词可见一斑(中文版的翻译可能会比较痛苦 呵呵)。当然,如果不是这样他也不会去写这本书了。薄薄一本书可以视作对JAVASCRIPT的一种总结,DIAGRAM画的很清楚。最令人印象深刻的是在全书一开始就点出任何语言都有好和不好的地方,而作为程序员就应该尽量去利用好的部分而不是全盘接受所有的一切。由于JAVASCRIPT本事的一些怪异特性,不少缺点已经老生常谈了,不过这种审视的思想也可以用到其他地方。
      
      推荐AWFUL PARTS和BAD PARTS两章。对于有经验的开发者从这两章能够很快的了解到一些语言的陷阱,实在是短小精辟。总言之,这本是的好就在于短小精辟,对语言的特性总结得很好。不需要很长时间就能读完,很是畅快。
  •     久闻大名的书,读完之后并没有预想的那种感觉。也许是因为书中的很多观点处处通用,即使你没有写过js, 也会从其他语言的普遍做法中见识到。The Definitive Guide今年又出了新版,非常有可读性,两相对比之下不免让人感觉没那么棒。
      
      但这绝对是一本很奇特的书,两个地方:
      
      1. 印象中其他语言没有对应的著作, 例如"Java: The Good Parts". C有一本pitfalls, 但和这本不太一样。js好的地方列了一遍,不好的地方也列了一遍。
      
      2. Appendix比正文精彩。全书的精华都在Appendix了。
      
      最后我想说的是,这不是js语法书,看中这书薄而放弃the definitive guide的同学们,你们亏大了。
  •      想买中文的,但是在网上书店都没有找到,只有孔夫子旧书店找到了,目前还没有到货,于是慢慢啃英文的,又有自己英文一般,只能借助google 翻译勉为其难,目前只在看第一遍,总体感觉,语言的障碍很到,作者其实很多地方都用很口语化的语言表达,但是由于自己英语水平有限,反而成了阅读的障碍。
       另外,这本书不是一本简单介绍js语法的书籍,不像其他书那样一点点的循序渐进,而是抽取出js中最值得学习和最优美的地方。但是对于没有js开发经验的人来说,这会是本不好理解的书。书中的思想需要有一定的开发经验才能够真正理解。对于想提高js能力的开发者,这绝对是一本好书,大牛不是告诉你怎么学js,而是告诉你js到底是个什么东西,它美在那里,丑在那里,那些该学那些该避免,甚至会告诉你js那里设计的不好,采用什么方法能够避免。
       这本书不是简单的知识点,而是一种思想,一种在web上使用js的思想,虽然只有100多页,但绝对值得所有web前端反复推敲和学习。
  •     1. 学了N次,终于靠这本书翻身了。why?这么薄本书,这么多张railroad diagram。。再不看懂就不好意思了
      
      2. differential inheritance, durable objects, closure, prototypal, object literal 学会好多术语。。
  •     首先这本书很薄,一个小时就能读完,但是简约不等于简单。
      这本书的作者是业界的大牛,他本人在这本书里的态度多少也有点训教的意味。
      这本书在内容上可以分为两个部分,一部分是对一些核心概念和函数的解释,另一部分则是告诉你什么该做什么不该做,这一部分也是书的名字的来源。
      但是就像我之前说的,作者在书里充当传统的教书先生的角色,他告诉你这个不好,但是却很少会告诉你为什么不好,所以建议读者要举一反三,技术本来就是研究讨论出来的。
      而且不要因为作者是大牛,就把他说的话尊为真理。比如对于普通函数内部的this指向问题,作者认为这是js语言设计的错误,但是另外一个大牛却坚持说这是一个特性,认为js作者有他自己的理由。
      总之,这本书短小精悍,适合有一定基础的js开发人员阅读,如果你喜欢jslint,你肯定会爱上这本书
  •      介绍的东西是相当好的,即便我没完全看明白,但我知道它对js程序员的意义,乃至js这门语言的意义.
       但是大牛确实很牛,但是不愿意详细描述,所以呢,不怎么建议很新的新手看这本书,在有了一点程度再来看这本书效果将相当好.
       个人愚见..
  •      从接触web开发以来就一直有接触JavaScript,直到看到这本书,才对js有了新的认识,js确实是最被误解的语言,也许JavaScript本身就容易造成误解,而这本书让人跟深入的理解js,functional 的js。
  •     javascript的”非常好的想法包括函数、弱类型、动态对象和一个富有表现力的对象字面量表示法“。
      
      从这里可以看出javascript和java是截然不同的两种语言,一个javaer不能认识到这点,就不能以真正的态度来学习这门语言。
      
      这门语言"语法借鉴自java,函数借鉴自Scheme,原型继承借鉴自Self",对于一个熟悉OO,熟悉命令式语言比如java, c的人来说, 函数式的语言是完全不同的,更灵活、更有表现力。
      
      。。。。。
  •     书很薄,却将JavaScript语言的特性讲得很细致,像书名一样,详细讲解了JavaScript精华部分,和一部分不太理想的特性,引导读者把握编程过程中的最佳实践。
      译者翻译得很好。
  •     刚刚看过C陷阱与缺陷的我,接下来读了他的Javascript版本。
      
      同样的,这本书适合做你Javascript的第二本书,对于比较熟悉Javascript的人并不适用。
      
      书上讲的大部分都是Javascript的最佳实践,一些Javascript的精华与糟粕,其实糟粕讲的并不多。
      
      全书基本上我都是一直向后翻,只有在函数闭包那部分花了比较多的时间。不过那部分讲的很不错,至少对比<Javascript王者归来>来说,看完后恍然大悟。
  •     如果你已经会JavaScript,那这本书是让你彻底掌握。薄薄一本书道了所有的精华。能看懂的,尽量看英文版。我两个版本都买了,要看透这本书,也就掌握了JavaScript的全部。
  •   还是看 高级编程好
  •   学了Coffee之后,别说definitive guide了,good parts也没耐心看了
  •   确实不是语法书。不过那个犀牛书也太厚了。只能看一部分。
 

250万本中文图书简介、评论、评分,PDF格式免费下载。 第一图书网 手机版

京ICP备13047387号-7