在一年一度的新春佳节即将到来之际,应热心读者的要求,为满足大家先睹为快的愿望,也为了答谢朋友们对本博客长期以来的支持,即日起到春节前夕,本站将发布尚未出版的《JavaScript高级程序设计(第2版)》一书的样章(暂定为3章,约115页)。
1、发邮件到:[email protected]。
2、邮件主题:《JavaScript高级程序设计(第2版)》样章;邮件内容:您的Email地址。
3、24小时内收到样章,先睹为快!
第3章 基本概念
第4章 变量、作用域及内存问题
第5章 引用类型
本书是人民邮电出版社图灵公司引进出版的大畅销书、JavaScript权威著作《JavaScript高级程序设计》的最新升级版。《JavaScript高级程序设计》自2006年11月出版以来,已经累计销售逾30000册,而且至今仍然十分畅销。这一点可以通过北京新华文化发展有限公司(新华书店)近期的店面销售数据看出来(大家可以自行比较一下其他畅销书的销量)。应该说,在Web 2.0革命爆发的同时,人民邮电出版社图灵公司引进出版的本书成就了计算机图书市场上难得一见的奇迹。
本书作者尼古拉斯·扎卡斯(Nicholas C. Zakas)现为Yahoo!公司首席前端工程师,世界顶级Web技术专家。原书第1版曾被选为Yahoo!公司YUI(Yahoo! User Interface Library,Yahoo!用户界面库)团队的内部培训教材。
2009年初,本书第2版面世(《Professional JavaScript for Web developers, 2nd Edition》)。新版本不仅篇幅由原来的600多页增加到800页,而且几乎全部更新、重写了上一版的内容,删除了上一版中与今天的职业需求无关的主题,新增了大量比上一版更有价值、更能反映JavaScript最新发展成果的内容。从颇具深度的JavaScript语言基础到作用域(链),从JavaScript引用类型到面向对象编程的最佳实践,从极其灵活的匿名函数到闭包的内部机制,从浏览器对象模型(BOM)到客户端检测,从文档对象模型(DOM)到基于事件的Web脚本编程,从错误处理到前端调试,从XML(E4X)到Ajax及JSON,从高级前端开发技术到前沿的客户端存储,从最佳编程实践到展望即将成为现实的API,直至JavaScript未来的发展。全书彻底涵盖了JavaScript技术的各个方面,几乎涉及到了Web前端开发的每一处细节。可以预见,这部著作一定会成为Web前端开发人员不可多得的又一部经典。
目前,《JavaScript高级程序设计(第2版)》的翻译工作已经进入后期阶段(全书22章,所剩不到5章)。而且,为确保新版及时上市与读者见面,出版社采取了与译者同步翻译、同步编辑审校的特别措施。新版本预计2010年上半年可以上市;当然,在确保出版品质的前提下一定会尽量往前赶!
第3章 基本概念 1
3.1 语法 1
3.1.1 区分大小写 1
3.1.2 标识符 1
3.1.3 注释 2
3.1.4 语句 2
3.2 关键字和保留字 3
3.3 变量 4
3.4 数据类型 5
3.4.1 typeof操作符 5
3.4.2 Undefined类型 6
3.4.3 Null类型 7
3.4.4 Boolean类型 7
3.4.5 Number类型 8
3.4.6 String类型 14
3.4.7 Object类型 16
3.5 操作符 17
3.5.1 一元操作符 17
3.5.2 位操作符 20
3.5.3 布尔操作符 26
3.5.4 乘性操作符 29
3.5.5 加性操作符 30
3.5.6 关系操作符 32
3.5.7 相等操作符 34
3.5.8 条件操作符 35
3.5.9 赋值操作符 36
3.5.10 逗号操作符 36
3.6 语句 37
3.6.1 if语句 37
3.6.2 do-while语句 38
3.6.3 while语句 38
3.6.4 for语句 38
3.6.5 for-in语句 40
3.6.6 label语句 40
3.6.7 break和continue语句 41
3.6.8 with语句 42
3.6.9 switch语句 43
3.7 函数 45
3.7.1 理解参数 47
3.7.2 没有重载 48
3.8 小结 49
第4章 变量、作用域和内存问题 1
4.1 基本类型和引用类型的值 1
4.1.1 动态属性 2
4.1.2 复制变量值 3
4.1.3 传递参数 4
4.1.4 检测类型 6
4.2 执行环境及作用域 6
4.2.1 延长作用域链 9
4.2.2 没有块级作用域 10
4.2.3 声明变量 10
4.2.4 查询标识符 11
4.3 垃圾收集 12
4.3.1 标记清除 12
4.3.2 引用计数 13
4.3.3 性能问题 14
4.3.4 管理内存 15
4.4 小结 15
第5章 引用类型 1
5.1 Object类型 1
5.2 Array类型 3
5.2.1 转换方法 6
5.2.2 栈方法 7
5.2.3 队列方法 8
5.2.4 重排序方法 9
5.2.5 操作方法 11
5.3 Date类型 12
5.3.1 继承的方法 14
5.3.2 日期格式化方法 15
5.3.3 日期/时间组件方法 15
5.4 RegExp类型 17
5.4.1 RegExp实例属性 19
5.4.2 RegExp实例方法 19
5.4.3 RegExp构造函数属性 21
5.4.4 模式的局限性 23
5.5 Function类型 23
5.5.1 没有重载(深入理解) 25
5.5.2 函数声明与函数表达式 25
5.5.3 作为值的函数 26
5.5.4 函数内部属性 27
5.5.5 函数属性和方法 29
5.6 基本包装类型 31
5.6.1 Boolean类型 32
5.6.2 Number类型 33
5.6.3 String类型 35
5.7 内置对象 42
5.7.1 Global对象 43
5.7.2 Math对象 46
5.8 小结 49
为之漫笔(李松峰),本博客专注于Web前后端技术、移动平台开发技术、交互设计和技术翻译。声明一下,因为时常需要外出审稿,而且基本不带笔记本,所以有时可能会迟一点回复大家的留言。
不看也会买的!第一版已经买了。
我想问下 老版的javascript高级程序设计 我已经看过两遍了.
这本书我现在只能看到3章的样张. 感觉第4章和第5章 变化挺多的
而且内容感觉比较好. 不知道后面的章节变化都有多大. 我确定
有没有继续购买的必要! 谢谢!~
很期待这本书,已经发送email
早就在期待了~~~
第一批29位读者请查收邮件,如有问题请及时联系:
*^WAY^*, 1989qingqishi, army8735, georgewing, Hiro, jinhu dong, kangjinshan, Lebron, Max Lee, morphysh, Neil Xu, stephen zhang, Viczen li, waitfox, walkingp, Willerce Zheng, world lg, yangliang, 迭戈的探戈, 丰丰心, 爵溪, 梁超, 卢卿, 欧拉, 潘锦涛, 山芋超人, 陶铖, 殷子心, 周光明
在样章第三章第6页的译者注处发现了一个技术问题:typeof是操作符,但它同时也可以调用:
typeof xxx与typeof(xxx)是等价的。
译者可以看第5页的“使用typeof的例子”那儿,第二行是空了一格,第三行是没空直接括号。
(可能要仔细点才看得清楚)
第3章第7页译者注处发现了技术问题:原文的意思是:简单的看作两者是相等的,但实际真正却不是相等的。
也就是说:用==判断是相等的(true),但是用===却不是相等的(false)。
@George Wing
1.这里的译者注是给编辑看的,编辑会删掉;不会被印刷在书中。只有脚注形式的译者注才会出现在书中。
2.原书没有空格;而且,没有空格也没有问题。——看得真仔细啊,呵呵!
3.请参见3.5.7节,本书将==表述为“相等操作符”,将===表述为“全等操作符”。
呃。大哥,你误会了。
1.是表示typeof虽然是操作符,但它也可以调用。原文的意思没有错。
2.是对1的解释。
3.==与===只是我为了证明原文的意思而举的例。。。
在第3章第16、17页中constructor有两种译法:构造器、构造函数。
希望能够统一。
晚上用了些时间把第三章的样张给看了. 我感觉不论书的改版还是博主你的翻译.都非常值得称赞.
毕竟还是参考书.对于ECMA提到的还是些皮毛.要是能再深入些就好了.(当然这个不是博主能决定的^_^)
读了整个第三章,我仅发现一个很小的错误.
p34 => 3.5.7 => 1.相等和不相等模块下的第一个 小■的解释
——false 转移为0,而 true 转换为 1;
这句话 第一个转换写成了转移.
希望博主能再接再厉.译出更好的书籍,造福大家
@LC
嗯,谢谢!欢迎指出更多的问题。
早上又读了第四章.这张算是精华了.也是看出了现在javascript研究进步之快.文章的角度也上升到了scopeChain. 也讲解了垃圾回收机制.很好看.
发现两点问题:
1. p6第二段
为此ECAScript提供了instanceof
ECMAScript写错了
2. p6的小结提示部分
在使用typeof检测正则表达式时,这个操作符会错误地也返function”
typeof /^[0-9]$/;
我看到的结果都是object
收到了,会核对的!
第二批
1920位读者请查收邮件,如有问题请及时联系:Ray Lee, 264527373, disc-01, jhyp5726, john, l y, Minxuan Cheng, saku saku, sky, Steven Wu, Steven.Yao, wenyu, zhendi, 蔡璐, 程海博, 高志恒, 浪雪, 李牧, 凌空一叶, 孙新峰,
第三批6位读者请查收邮件,如有问题请及时联系:
bloglei, cq cq, Hu, Jiangwei, I’m Rebill, ZY, 穆瑞强,
@LC
关于问题2
typeof检测正则表达式在《JavaScript语言精粹》第104页译注4有答案:
“经译者测试,在对正则表达式执行typeof操作时,主流浏览器中IE/FF/Op都返回object,而Safari返回的是function。”
第四批6
5位读者请查收邮件,如有问题请及时联系:NoNZero, aloo Ivern, 彬, 彬, 卡兹, 魏忠, 张峰,
第五批7位读者请查收邮件,如有问题请及时联系:
Micheas, 斌 邱, ⺗弄月々池池, 罗永德, 王祥, 小山睡虫, 周涛,
第六批5位读者请查收邮件,如有问题请及时联系:
ai chen, IcyTrojan, Wei Shao, yatata, 周裕波,
邮件已发送,谢谢。
第七批2位读者请查收邮件,如有问题请及时联系:
bo yu,wswakn
第八批4位读者请查收邮件,如有问题请及时联系:
Jeanx, Yuchun Li, 程炳生, 刘金灿,
第九批3位读者请查收邮件,如有问题请及时联系:
simaopig, zqxzyf_123, 这么长,
谢谢李老师,样章已经收到,正在仔细阅读中,谢谢!
@simaopig,不用客气!
请老师发第九批的样章。非常期待书早日发行。
[email protected],谢谢lz哈,爱死你了
好书,正想去买第一版的看,第二版快出了,就等等吧,先要个样章来看看,邮件已发,谢谢译者。
这本书我看了译者翻译的试读章节和后面英文原文的一些章节,第七章讲闭包(Closure)的配图Figure1-1,Figure1-2,应该是所有讲闭包的blog或者书里最直观的了。不过两副图好像有个共同的问题。
JavaScript: The Definitive Guide, 5th Edition
8.8.2. The Call Object
提到
“Note that unlike arguments, this is a keyword, not a property in the call object.”
this关键字不是调用对象的属性,按权威指南的这种说法,Nicholas C. Zakas画的两幅图里面,函数的调用对象属性表中都不应该出现this关键字。
不知道是Nicholas C. Zakas还是权威指南的说法是正确的?希望译者能给解答下。谢谢!
@凌空一叶
虽然这两本书都是参考ECMA-262第3版编写的,但具体到讲述这些高级内容的部分,很难说哪位作者的表述是正确的,哪位作者的表述是不正确的。如果非要说什么样的表述正确,我建议你去看规范,规范只有一份,肯定是正确的。问题是,即使是规范中的某些表述,不同的人看来也可能会有不同的理解和不同的解释。
具体到你说的this是关键字这个问题。第3版11.1节(p.40)说:The this keyword evaluates to the this value of the execution context.第5版同是11.1节(p.60)说:The this keyword evaluates to the value of the ThisBinding of the current execution context.(参见http://www.ecmascript.org/docs.php)
Nicholas在本书中说“当第一次调用compare()时,会创建一个包含this、arguments、value1和value2的活动对象”(所以在两幅插图中,函数的调用对象都包含着this)。问题在于,其中的this是指第3版中所说的The this keyword,还是the this value of the execution context?如果是前者,当然不对;如果是后者,好像就没有问题了。
另外,Prototype库的核心开发人员Juriy Zaytsev对这本书进行了非常严格的审校,在提到这一章的上述内容时,也还是赞赏有加的。(参见http://perfectionkills.com/professional-javascript-review/。)
什么时候出来呢,等着买呢。看过第一版的电子片。确实是本不错的书。
@亚克蜥
快了,大概在6、7月份吧,敬请期待
感觉第一版的译者没有用心,里面代码和描述错误较多,已经看了前面几章,要不要继续看下去,还是等第二版出来后再去读?
1、样章第四章,第6页,“alert(typeof b); //Boolean”,此处Boolean应为boolean;
2、样章第五章,第11页,倒数第7行,“则用数组长度减去该数来确定相应的位置”中的“减去”是否应改为“加上”?因为那个数本来就是负数;
3、样章第五章,第24页,代码“var sum = new Function(“num1″, “num2″, “return num1 + num2);”中,缺少一个”符号;
4、样章第五章,第40页最后一行代码,“var colors3 = colorText.split(/[^\,]+/);”,在IE6中,数组中只有3项,而在Firefox中与注释一致,是5项。
在第一版(中文)中,关于原始类型描述及代码中的一些错误,在第二版的样章第三章中都得到了改正,而且一些翻译不习惯的术语也改了过来,很不错,希望早日看到第二版。
@千年一梦
多谢,全部确认,编辑会修改。另外,如有兴趣看更多样章,请把Email发给我。
[...] 之所以想到公开征寻技术审稿人,一是上一本书的样章吸引了120多位朋友的热情参与(“经典名著,精选样章”),几位热心的朋友在出版前也为我指出了一些问题,而这些问题在出版前都得到了妥善解决,保证了最终出书的质量;二是在今天这个开放的环境下,如果还延续那种一个人关起门来翻译的模式,不仅会显得译者自己缺乏公开的勇气,更会拖延译稿中问题的解决(译者一个人无法解决书中的所有问题再正常也不过了)。况且,样章早晚都是要放出来给潜在读者先睹为快的,后放不如早放,这样也有利于对图书的前期宣传,有利于潜在读者提前了解这本书的价值所在和翻译质量——先尝后买嘛。 [...]
很期待这样的书!
Grrrr… well I’m not writing all that over again. Anyways, just wanted
I searched for something completely different, but found your website! And have to say thanks. Nice read. Will come back.true religion jeans
Thanks a lot for sharing this with all of us you really realize what you are speaking approximately! Bookmarked. Thank you!
Men, at soome time, are experts of their fates.