基本信息
- 原书名:Eloquent JavaScript: A Modern Introduction to Programming
- 原出版社: No Starch Press; 1 edition
- 作者: (美)哈弗贝克(Haverbeke,M.)
- 译者: 徐涛
- 丛书名: 华章专业开发者丛书
- 出版社:机械工业出版社
- ISBN:9787111396659
- 上架时间:2012-9-27
- 出版日期:2012 年10月
- 开本:16开
- 页码:162
- 版次:1-1
- 所属分类:计算机 > 软件与程序设计 > 网络编程 > javascript

【插图】

编辑推荐
世界级JavaScript程序员力作,JavaScript之父Brendan Eich高度评价并强力推荐。
JavaScript编程原理与运用规则完美融合,读者将在游戏式开发中学会JavaScript程序设计,是系统学习JavaScript程序设计的首选之作。
内容简介
计算机书籍
如果你只想阅读一本关于JavaScript的图书,那么本书应该是你的首选。本书由世界级JavaScript程序员撰写,JavaScript之父和多位JavaScript专家鼎力推荐。本书适合作为系统学习JavaScript的参考书,它在写作思路上几乎与现有的所有同类书都不同,打破常规,将编程原理与运用规则完美地结合在一起,而且将所有知识点与一个又一个经典的编程故事融合在一起,读者可以在轻松的游戏式开发中学会JavaScript程序设计,趣味性十足,可操作性极强。
《JavaScript编程精解(华章程序员书库)》一共12章:第1~3章介绍了JavaScript的基本语法,旨在帮助读者编写出正确的JavaScript程序,包含数字、算术、字符串、变量、程序结构、控制流程、类型、函数、对象和数组等最基础和最核心的内容;第4~7章讲解了JavaScript编程中的高级技术,目的是帮助读者编写更复杂的JavaScript程序,主要涉及错误处理、函数式编程、面向对象编程、模块化等重要内容;第8~12章则将重心转移到JavaScript环境中可用的工具上,分别详细讲解了正则表达式、与Web编程相关的知识、文档对象模型、浏览器事件和HTTP请求等。
作译者
Marijn
Haverbeke 世界级JavaScript程序员,通晓多种编程语言,在Web开发方面积累了丰富的经验,在JavaScript领域颇有影响力。如今,他专注于动态语言下的数据库系统的研究和Web
API的设计。此外,他创建并维护着多个流行的开源项目。
目录
对本书的赞誉
译者序
前言
第1章 JavaScript基础:值、变量、控制流程1
1.1 值1
1.1.1 数字1
1.1.2 算术2
1.1.3 字符串3
1.1.4 一元操作符3
1.1.5 布尔值、比较和布尔逻辑4
1.1.6 表达式与语句5
1.2 变量5
1.3 环境7
1.3.1 函数7
1.3.2 prompt和confirm7
1.3.3 print函数8
1.3.4 修改环境8
1.4 程序结构8
1.4.1 条件执行9
译者序
与其他的JavaScript书籍不同,本书没有列表式的数据类型讲解,也没有枯燥的概念和老掉牙的例子,更没有流行的Ajax专题。本书通过设计一个个由浅入深的小游戏,让读者更加深入而轻松地学习如何应用JavaScript编程技术。因此,建议读者在阅读过程中,每次阅读一个完整章节,以便更好地理解编程故事的情节。
在翻译过程中,除了对JavaScript语言本身有了深刻理解之外,我也学到了如何从一个需求(游戏设计)进行分析,进而细化到可编程的JavaScript代码部分,尤其是本书中虚拟生态圈游戏的设计,使我真正体会到了JavaScript原来还可以这么做。
我非常荣幸能够参与本书的翻译工作,感谢机械工业出版社的编辑在翻译过程中给予的鼓励和信任。与此同时,也要感谢我的家人在翻译过程中对我的支持和理解,尤其是我的爱人对本书进行了无数次的阅读,并给出了大量的修改建议。
由于译者水平有限,翻译错误或者风格不合口味在所难免,对你造成的阅读上的不便我深表歉意。
针对本书的任何意见你都可以在我的博客上(http://www.cnblogs.com/TomXu),或者通过邮件直接发给我,我的邮件地址是taoxu@live.com。
感谢并期待你的批评和指正!
前言
现在的计算机相比20世纪70年代的功能更加强大,价格也更加便宜,软件接口呈现的是使用鼠标操作的灵活图形界面,而不是语言界面。这使计算机更容易使用,总的来说,这是一个巨大的进步。然而,这也在计算机用户与编程世界之间制造了一个障碍—业余爱好者必须积极寻找自己的编程环境,而不是一打开电脑就呈现的环境。
实质上,计算机系统仍然被各种编程语言控制。大多数的编程语言都比早期个人计算机中的BASIC语言更加先进。例如,本书的主题—JavaScript语言,就存在于每一款主流Web浏览器中。
关于编程
不愤不启,不悱不发。举一隅不以三隅反,则不复也。
—孔子
本书除了介绍JavaScript外,也致力于介绍编程的基本原理。事实上,这种编程还是比较难的。编程的基本规则通常都简单明了,但计算机程序构建在这些基本规则之上后,会变得很复杂,产生了其自身的规则和复杂性。正因为如此,编程并不是那么简单或可预测的。正如计算机科学的鼻祖高德纳(Donald Knuth)所说,编程是一门艺术,而不是一门科学。
要想从本书里获取最大收获,不能仅仅依靠被动阅读。一定要集中注意力去理解示例代码,只有确定自己真正理解了前面的内容,才能继续往下阅读。
程序员对其创造的宇宙负全部责任,因为他们是创造者。以计算机程序的形式,可创造出无限复杂的宇宙。
—Joseph Weizenbaum,《Computer Power and Human Reason》
一个程序包含很多含义。它是程序员敲出的一串字符,是计算机运行的指向力,是计算机内存中的数据,还控制同一个内存上的执行动作。仅使用熟悉的类推法比较程序与对象往往还不够,因为从表面上看适合该操作的是机器。机械表的齿轮巧妙地啮合在一起,如果表的制造者技术很棒,它就能够连续多年准确地显示时间。计算机程序的元素也以类似的方式组合在一起,如果程序员知道自己在做什么,那么这个程序就能够正常运行而不会崩溃。
计算机作为这些无形机器的载体而存在。计算机本身只会做简单直接的工作。它们之所以如此有用,是因为它们能够以惊人的速度完成这些工作。程序可以巧妙地把许多简单动作结合起来,去完成非常复杂的工作。
对有些人来说,编写计算机程序是一种很有趣的游戏。程序是思想的构筑,它零成本、零重量,在我们的敲打中不断发展。如果我们不细心,它的规模和复杂性将失去控制,甚至创造者也会感到混乱。这就是编程的主要问题:控制好程序。程序在工作时是很不可思议的,编程的艺术就是控制复杂性的技巧,好的程序其复杂性也会降低。
如今,很多程序员认为只要在程序中使用少量易于理解的技术,就可以最有效地降低复杂性。他们制定了严格的编程规则(最佳实践)及书写格式,那些破坏规则的人被称为“差劲”的程序员。
丰富多彩的编程世界里包含了太多的复杂性!让我们努力将程序变得简单和可预测,并为所有奇妙和优美的程序制定禁忌规则。编程技术的前景是广阔的,其多样性使人着迷,它的世界仍有很多未被探索的部分。编程过程中有很多陷阱和圈套,缺乏经验的程序员会犯各类糟糕的错误,告诫我们需要谨慎,并保持头脑清醒。学习编程时总是需要探索新的挑战、新的领域,拒绝不断探索的程序员必定会停滞不前、忘记编程的快乐、并失去编程的意志(或成为管理人员)。
语言为何很重要
在计算机诞生初期并没有编程语言。程序看起来就像这样:
这是一个从1加到10并输出结果(1 + 2 +…+ 10 = 55)的程序。它可以在一个非常简单、理想化的计算机上运行。为早期的计算机编制程序时,必须在正确的位置设置一排排的开关或者在纸带上打上一系列有规律的孔点,这样才能将程序传递给计算机。可以想象这个过程有多么繁琐和易出错。即使编写简单的程序也需要使用很多脑力和规则,编写复杂的程序更是不可想象。
当然,手动输入这些二进制位(即以上这些1和0的统称)的神秘组合,让程序员感觉自己像巫师一样拥有强大的魔力,而且还能够获得工作满足感,因此这点还是很值得的。
程序的每一行都包含一条单独的指令。可以用语言这样描述:
媒体评论
——Brendan Eich,JavaScript之父
因为这本书,我成为了更棒的架构师、作家、咨询师和开发者。
——Angus Croll,Twitter开发者
如果你决定只买一本有关JavaScript的书,那么就应是Marijn Haverbeke的这本书。
——Joey deVilla,Global Nerdy
本书不仅是学习JavaScript最棒的教材之一,也是通过学习JavaScript进而学习现代编程的优秀图书。当有人问我如何学好JavaScript时,我会推荐这本书。
——Chris Williams,美国JSConf组织者
我读过的最棒的JavaScript书籍之一。
——Rey Bango,微软Client-Web社区项目经理和jQuery团队成员
这本书不仅是一本非常不错的JavaScript指导书,而且是一本很棒的编程指导书。
——Ben Nadel,Epicenter咨询公司首席软件工程师
真是本好书。
——Design Shack
这本书对编程基本原理的详述以及对栈和环境等概念的解释非常到位。注重细节使本书从其他的JavaScript书中脱颖而出。
——Designorati
学习JavaScript的好书。
——Craig Buckler,OptimalWorks Web Design公司
书摘
JavaScript基础:值、变量、控制流程
计算机世界里只有数据,没有数据计算机就不存在。所有数据实质上都是由bit序列构成的,因此基本上都是相似的。bit序列通常是由0和1两种数字排列组合而成的,它们在计算机内的形式就如一个高电荷或一个低电荷、一个强信号或一个弱信号,或光盘表面的一个亮点或一个暗点。
1.1值
虽然构成相同,但每一部分数据都扮演着自己的角色。在JavaScript系统中,大多数数据都被有序地分成了各种值。每个值都有一个类型,用于确定它扮演的角色类型。JavaScript里有6种基本类型的值:number、string、Boolean、object、function和undefined。
创建值的时候,只需调用它的名称即可,非常方便。无需为创建的值收集构建素材或是支付费用,只要调用某个值,便可立即获得该值。当然,值也不是凭空创建的,每个值都需要存储在某个地方,如果在同一时间使用大量的值,就有可能耗尽内存, 幸运的是,只有在同时使用大量数据的时候才会出现这个问题。一旦不再需要这个值,它将会消失,只剩下一些bit数据,用于再次生成值。