深入浅出CoffeeScript9787115279743 正版新书正浩图书专营店 mobi 下载 网盘 caj lrf pdf txt 阿里云

深入浅出CoffeeScript9787115279743 正版新书正浩图书专营店精美图片
》深入浅出CoffeeScript9787115279743 正版新书正浩图书专营店电子书籍版权问题 请点击这里查看《

深入浅出CoffeeScript9787115279743 正版新书正浩图书专营店书籍详细信息

  • I***N:9787115279743
  • 作者:暂无作者
  • 出版社:暂无出版社
  • 出版时间:2011-07
  • 页数:104
  • 价格:25.60
  • 纸张:胶版纸
  • 装帧:平装-胶订
  • 开本:16开
  • 语言:未知
  • 丛书:暂无丛书
  • TAG:暂无
  • 豆瓣评分:暂无豆瓣评分
  • 豆瓣短评:点击查看
  • 豆瓣讨论:点击查看
  • 豆瓣目录:点击查看
  • 读书笔记:点击查看
  • 原文摘录:点击查看

寄语:

正版图书保证质量 七天无理由退货让您购物无忧


内容简介:

内容简介:

作为唯一所有主流浏览器都支持的脚本语言,JavaScript俨然已成为Web开发领域最具号召力的语言,但它的种种语言怪癖以及在各种浏览器间实现不一致等问题也为开发人员所诟病。2009年底,CoffeeScript横空出世。它吸收了JavaScript语言的精华,并添加了很多现代语言脚本的特性,很快便得到了大量Web开发人员的青睐。

本书由CoffeeScript重要贡献者Trevor Burnham操刀,从基础知识入手,全面详尽地介绍了CoffeeScript这门新语言。通过一个5×5拼字游戏,作者将CoffeeScript各方面的知识融入其中,通俗易懂地讲解了CoffeeScript如何与jQuery等非常流行的类库完美集成,如何游刃有余地结合Socket.IO实现Node.js双通道异步通信。每章结尾都有精心设计的习题,有助于读者巩固所学的CoffeeScript知识并更上一层楼。

掌握CoffeeScript,Web开发之旅将更轻松、快捷和优雅!


书籍目录:

第1章 入门指南 1

1.1 安装CoffeeScript 1

1.2 CoffeeScript编辑器 4

1.3 “邂逅”coffee 5

1.3.1 编译为JavaScript 6

1.3.2 REPL 7

1.4 调试CoffeeScript 8

1.5 预备 9

第2章 函数、作用域和上下文 11

2.1 函数基础知识 11

2.1.1 访问arguments对象 13

2.1.2 条件表达式和异常 14

2.2 作用域:你在哪里看到它们 16

2.3 上下文 18

2.4 属参数(@arg) 21

2.5 默认参数(arg=) 22

2.6 参数列(...) 24

2.7 项目:5×5游戏输入分析器 25

2.8 做得好,年轻的学徒 29

2.9 练9

第3章 集合与迭代 31

3.1 作为哈希表的对象 31

3.1.1 JavaScript基础知识:一节JavaScript补31

3.1.2 精简的JSON 32

3.1.3 同名键值对 33

3.1.4 吸收操作符:'a?.b' 33

3.2 数组 34

3.2.1 区间 35

3.2.2 切分和剪接 35

3.3 集合的迭代 37

3.4 条件迭代 39

3.5 列表解析 40

3.6 模式匹配(或解构赋值) 41

3.7 项目:5×5单人游戏 42

3.8阶 48

3.9 练8

第4章 模块与类 51

4.1 模块:解构程序 51

4.2 原型的威力 53

4.3 类:原型函数 55

4.4 使用extends来继承 56

4.5 项目:重构5×5游戏 59

4.5.1 Dictionary类 60

4.5.2 Grid类 61

4.5.3 Player类 62

4.5.4 C***ole.Coffee接口 63

4.6 如“一勺糖” 63

4.7 练4

第5章 jQuery Web交互开发 66

5.1 jQuery之道 66

5.2 操作DOM 67

5.3 学会选择 68

5.4 响应事件 69

5.5 项目:基于浏览器的5×5游戏 71

5.5.1 index.html 71

5.5.2 style.css 72

5.5.3 jq5×5.coffee 73

5.6 未来是jQuery化的 77

5.7 练7

第6章 Node.js服务器端程序 79

6.1 什么是Node.js 79

6.2 使用exports和require构建模块化代码 80

6.3 异步思想 81

*** 项目:多人5×5游戏 84

***.1 5×5server.coffee 85

***.2 5×5client.coffee 89

***.3 都结束了 91

6.5 客户端、服务器端——有何不同 91

6.6 练1

附录A 练 92

附录B 运行CoffeeScript的几种方法 98

附录C JavaScript备忘录 102


作者介绍:

作者简介:

Trevor Burnham

全栈式Web框架开发专家,DataBraid创始人,开源拥趸,技术布道师。其Twitter账号@TrevorBurnham和@CoffeeScript拥有大批追随者。

译者简介:

寸志

2011年7月毕业于同济大学信息安全专业,在校期间,曾荣获微软精英大挑战优胜奖,第三届三叶草软件竞赛三等奖等。现任大众点评网前端工程师。热爱互联网,热衷研究新技术,崇尚开源精神,喜欢运动和阅读。豆瓣社区@island205,博http://island205.com/,Twitter账号@island205,欢迎读者与他交流探讨技术问题。


出版社信息:

暂无出版社相关信息,正在全力查找中!


书籍摘录:

入门指南

  如果你读过前言,那么现在应该已经了解了CoffeeScript是什么,它从何而来,以及它为什么是继Herman Miller牌办公椅之后,对程序员来说棒的东西了。但是实际上你还没写过一行代码,等不及了是吧?

  好,深呼吸下,时候到了。在本章中,我们将在你的操作系统中安装CoffeeScript,配置好编辑器,后再运行一些代码!

  1.1 安装CoffeeScript

  CoffeeScript编译器是用CoffeeScript写成的,这产生了一个先有鸡还是先有蛋的问题:我们是如何在一个还没装CoffeeScript编译器的系统上运行编译器的呢?如果能找到某种方法,在机器上浏览器之外运行JavaScript代码,且允许这些代码访问本地文件系统好了……

  对,其实我们有Node.js!大家把Node当成一个JavaScript的Web服务器(详见6.1节),但是它可不止这能。从根本上讲,它是JavaScript代码和操作系统之间的一个桥梁。Node也有一个名为npm的很棒的工具,即Nod管理器(Node Package Manager) 。如果你是Ruby程序员,可以将其想象为Node版的RubyGems 。npm已经成为安装管理Node程序和类库约定俗成的标准了。

  本节的剩余内容讲述Node和npm的安装,有了它们,我们能够使用CoffeeScript标准的coffee编译器了(我们在第6章同样需要使用Node和npm)。如果你迫不及待地想要实践一下的话,可以访问://coffeescript***/,点击“Try CoffeeScript”按钮,然后直接跳到下一章去(要在浏览器中显示c***ole输出,需要某些工具,比如说Fire Lite )。

  准备好了?那我们开始吧。

  使用Node.js和npm安装CoffeeScript

  尽管有很多不借助Node来运行CoffeeScript代码的方法(附录2会谈到其中几种),然而我还是假定你在全书中用的是标准的coffee命令,专门运行在Node上的。但是只有在第6章才会明确需要使用Node和npm。

  请注意,使用Windows系统的用户,在继续之前你需要先安装Cygwin 。Cygwin基本上相当于一个Linux模拟器。虽然Node.js在0.6版本的蓝图中计划直接支持Windows,但是在写作本书之时,使用Cygwin是现有的可靠的方法。

  Mac用户需要安装Xcode ,并不在于这个程序,而在于那些随它一起安装的命令行开发工具。尝试运行命令gcc(GNU编译器集合)来检测系统中是否已经安装了这些工具:

  如果输出如上所示,那说明准备绪了。如果没有的话,那么请安装Xcode(Mac用户),或者直接安装标准创建工具(Linux或者Cygwin环境下)。

  无论是什么系统(Linux/Unix/Mac),现在都配置好标准创建工具了吧?太棒了!现在去访问://gist.github.com/579814,此处列出的安装方法之多会让你眼花缭乱,它们都出自npm的创建者Isaac Schlueter。对于所有Mac用使用Homebrew 方法(先安装Homebrew)。对于其他系统的用户,列表中的个选择则为直接,也是好的方式。Node是个很大的程,安装它需要花几分钟。

  安装好Node之后,运行新的npm远程安装脚本:

  如果你碰到权限错误,可以使用chown 改变Node安装目录的属权(该方法可以减少很多麻烦),也可用sudo sh 替换普通sh。

  无论选择哪种方法,都要测试一下node和npm是否已经存在于系统的环境变量PATH中了:

  (简单的提一下与版本相关的事情:Node的版本号为偶数时API保持稳定。因此,本书的例子在新的0.4.x版本下应该运行正常。但是Node 0.5.x版则会以API的变化为,而这些变化将含到0.6.x稳定版中。说到npm,本书中假定你使用的是npm 1.x。因此,如果你还在使用npm 0.x,是时候升级了。)

  现在抓取新发布的CoffeeScript:

  参数-g是--global的缩写,它使已安装好的库在全局系统中都可用(默认情况下,npm install [package]把的程安装到当前的子目录node_module中,这样便于安装只适用于特定项目的类库)。只要是安装那含制可执行程序的程使用-g参数。

  npm install命令的输出结果告诉我们,作为安的一部分,两个制可执行程序cake和coffee已安装好了。让我们测试下coffee是否已经在系统的PATH 中了:

  如果这样不行,那看一下npm install输出结果中->符号之前的路径(例如/usr/local/bin),然后把它添加到系统的PATH中去。如果使用的是Mac默认bash终端的话,在你的~/.profile文件中添加这行代码即可:

  注意不要遗漏:$PATH这部分,否则/usr/local/bin会直接替换掉系统的PATH变量,而不是将自己添加到里面!要让这行代码生效,需要保存好文件并且开启一个新的会话终端(比方说,把老的终端关掉打开一个新的)。

  如果使用的是其他系统或终端,步骤可能会略有不同,可以输入echo $SHELL搞清楚你使用的是哪个终端。不要忘了在修改完文件之后重新打开会话终端,以便修改生效。

  后一步:像要想在任何地方都能够使用制程序必须把它们放到PATH中一样,npm安装的Node类库也必须添加到NODE_PATH中。可以输入如下命令查看Node安装类库的位置:

  (该命令同时还列出了npm全局安装的所有类库。去掉-g可以看到安装在当前目录下的所有类库。)我们需要把该路径下的子目录node_module添加到NODE_PATH中。在笔者的系统中,是将如下内容添加到~/.profile文件中:

  同样,你的系统上需要采取的操作步骤可能会有所不同。要测试NODE_PATH是否有效,打开一个新的会话终端输入命令node,即可打开Node.js的REPL ——一个交互式命令运行环境。接着输入:

  我保证,这是本书中行你需要输入的JavaScript代码!

  如果NODE_PATH设置得不正确,会看到一个Error: Cannot find module ‘coffee-script’的错误提示。如果只是看到一段很长的对象描述,那没有问题了。完成后,可以输入process.exit()或者使用 – 来退出Node的REPL。

  顺便说一下,coffee-script库已经超出了本书的范围;我能说的是,在CoffeeScript或JavaScript程序中,它能让你把CoffeeScript编译成JavaScript。你可以基于此做一些酷的事情,比方说你可以自己写一含自定义后期处理的编译器,或者可以写一个像Cakefile 那样的脚本。

  嘿!我知道安装过程似乎花了很多时间,不过请相信我,既然我们获得了为自己所用的Node和npm的力,那付出终将获得回报。现在让我们来配置下编辑环境吧。

  在刀锋上起舞

  如果你要用新的CoffeeScript,这实际上也容易。只需要使用git 把CoffeeScript的代码仓库***下来,然后使用npm从本地目录中安装它即可:

  这将安装CoffeeScript当前的master分支,它多少有点不稳定。可以运行如下命令来还原到特定版本的CoffeeScript(比如说1.1.1):

  1.2 CoffeeScript编辑器

  在s://github.com/jashkenas/coffee-script/wiki/Text-editor-plugins上可以找到一份新的支持CoffeeScript的编辑器列表。如果你使用的是Mac系统使用由Jeremy Ashkenas维护的TextMate插件 。在撰写本书时,Vim、Emacs、gedit、jEdit以及IntelliJ IDEA也分别有插件提供了对CoffeeScript的支持。

  近,使用基于Web的编辑器编写代码已成为可能,这些编辑器支持实时协作,不依赖于任何特殊的设备。目前对CoffeeScript支持得好的Web编辑器是安装了Cloud9 Live CoffeeScript Extension 的Could9。

  当然,你可以使用任何自己喜欢的编辑器,但是支持CoffeeScript的编辑器会给你带来3大优势——语法高亮、自动以及内置的编译快捷方式。前两个优点理解起来很容易,但是第三个优点是很多程序员没有好好利用的部分。

  在TextMate中,可以使用 R(运行)来运行CoffeeScript文件,或者只用 B(生成)来查看编译后的JavaScript。编译只需几毫秒,因此如果对于一个CoffeeScript表达式如何转化为JavaScript不是很确定,那么快速编译是搞清楚这一过程的快方法。如果有被选中的文本,则这些命令仅仅运行选中部分的代码而不是整个文件,这让测试小块代码以及定位语法错误变得容易多了。如图2所示

  图2 直接在TextMate中运行选择的代码

  稍微注意下,一些编辑器括TextMate)不会默认采用PATH值,这意味着在你试图运行coffee命令时可能会出现类似于command not found的错误。如果遇到这种问题,打开编辑器的配置(可能在Shell Variables)设置PATH,以匹配在终端中运行echo $PATH命令时得到的输出值。你愿意的话也可以顺便设置下NODE_PATH。

  1.3 “邂逅”coffee

  既然你已经把编辑器设置好了,那是时候介绍标准命令行编译器coffee了。让我们从必修的“Hello world!”程序开始。打开编辑器,创建一个名为hello.coffee的文件,添加如下内容:

  直接运行它:

  有几件事情你可能会感到奇怪:首先,c***ole.log函数是从哪里冒出来的?(答案:它是一个Node.js的全局函数。)其次,JavaScript在哪里呢,不是说CoffeeScript会编译为JavaScriptr />

  事实上coffee会将hello.coffee隐式地编译为JavaScript,然后将输出结果直接传递给Node,以使其立即执行。如果这不能满足你的需求,可以使用coffee众多选项中的一个或多个,使用coffee -h命令可以查看这些选项:

  如果想查看刚才编译器隐藏的JavaScript,可以运行:

  可以查看1.3.1节&ldquo裹中的JavaScript”专题对多余两行代码的解释。

  1.3.1 编译为JavaScript

  -c(编译)可能是常用的参数,它可以把输出的JavaScript保存到文件中。除了使用.js扩展名代替.coffee之外,新文件的文件名与原始文件的相同。让我们继续使用咖啡因饮料的主题:

  编译输出到相同路径下的一个名为mochaccino.js的文件中。使用-o(输出)参数并让目标目录名称紧跟其后,可以把输出保存在其他地方:

  该示例读取source目录含其子目录)下的所有.coffee并把对应的.js文件写入output。注意-co是-c-o的缩写。其顺序很重要:输出目录名必须紧接在-o之后。

  另外一个比较常用的参数是-w(***),它可以让coffee命令在后台持续运行。结合-c,它在每次作出改变之后重译代码。它甚能在多目录下工作且能保持嵌套的目录文件结构不变。因此,如果运行的命令, coffee目录下的所有文件都会不断地被重译到js目录中:

  它会持续运行直到使用 – 来终止编译器。

  裹中的JavaScript

  你可能想知道为什么CoffeeScript编译后的代码会裹在一个函数内?原因用一个词来说是命名空间。如果将一堆JavaScript文件上载到一个浏览器程序中,它们会被当做一个大的代码块,这容易产生不可预料的结果:

  写个文件的人,对代码可能造成的破坏一无所知!为避免发生灾难可以把每个文件用一个匿名函裹起来,这样隔开了两个declareNuclearWar声明(参见2.2节),这种方式叫做模块模式。

  为了让模块之间可以互相通信,必须“输出”一些变量(我们会在4.1节详细介绍)。

  如果要除裹函数,使用-b(暴露)参数来运行coffee命令即可。

  1.3.2 REPL

  不带任何参数直接运行coffee入编程老手所说的REPL,即Read-Eval-Print Loop。通俗地说,是你输入点什么,它执行,然后你查看输出结果,周而复始。

  这很适合用来小试一下这门语言。REPL运行在Node.js环境中,并且它会输出所有表达式的结果。例如,如果我们想回忆一下JavaScript中parseInt的某些怪异行为,可以这样试试:

  coffee相关的内容介绍到这里。再顺便说一句,如果想了解coffee是如何工作的,可以查看带注释的源码。如果你愿意,甚可以对行反向工程,编写自己的CoffeeScript编译器接口(像笔者写的Jitter 一样)。

  不要忘了coffee只是一个轻量级的工具,它并不提供代码压缩或者编译后自动运行测试之类能。如果想把这能添加到自己的项目中,你应该编写自己的生成脚本,通常是所谓的Cakefile。你可以在CoffeeScript wiki 上找到一些Cakefile相关的文档。

  几乎可以编写CoffeeScript代码了——但还有一个问题,如果遇到错误该怎么办呢?

  1.4 调试CoffeeScript

  很多使用类似CoffeeScript这类语言编写代码的人都会遇到以下问题,即运行时错误参考的是编译后的代码而不是原始代码。这确实是个问题,而且大家也探讨过几个解决方案。可不幸的是,目前留给你的只有那些行号与原始代码没有任何关系的栈跟踪信息。

  幸好,CoffeeScript编译后的JavaScript有很强的可读。如果你了解这两种语言之间的对应关系(我希望读完本书后你能做到这一点),那么在原始CoffeeScript代码中找到与程序中出错的地方相匹配的位置容易了。

  虽然不甚理想,但这是站在技术前沿所要付出的代价。随着CoffeeScript生态圈的日渐成熟,工具越变越好,追踪错误将会越来越容易。Mla基金会的那些家伙为了给Firefox添加CoffeeScript调试支持正在拼命工作。Node也不会落后太远。但在此之前,还是测试你的代码,使用调试模式日志,搞懂你的JavaScript代码吧。

  有中间选择么?有的,在装配了开发控制台(或者像之前提到的Firebug Lite之类的书签工具)的Node.js或者浏览器中,可以使用c***ole.log来显示消息。这可能会有两个问题:一是你并不想要输出每个细节,二是如果c***ole.log不存在的话你不会调用它。通常的解决方案是使装函数,但是这样的话,当输出内容时无法获得关键的JavaScript代码行号(因为所有的日志都是从同一个地方,装函数里输出的)。如下方式:

  在这个例子中,地址栏的“哈希”含字符串debug(比如page.html#debug),并且浏览器中存在c***ole对象时,debugMode才为true。这为你提供了一种容易的方法,确保在页面加载时能够开启或关闭输出所有额外的信息。将debugMode声明为window的属可以让其成为全局变量。

  一种更简单但没有那么通用的方式是使用吸收操作符(详见3.1.4节)以保证当c***ole存在时才调用c***ole.log:

  在Node下,有大量的类库(可以使用谷歌快速搜索node logging library)能够显示不同冗余度的输出。我的styout 含其中,它还提供对控制台色差输出的支持。

  日志信息可以代替注释,在开发过程了更多关于代码如何运行的信息。比如,是一段典型的注释完好的代码:

  可以像这样,调用c***ole.log来代替注释:

  另外一种在代码中使用断言,标准的c***ole对象中有一个assert函数对此提供很好的支持,它接受一个值和错误信息作为参数(值为非真时显示错误信息)。

  后,编写结构良好的代码是避免错误的重要的保证。尽管现在还不存在任何工具可以指出导致运行时错误的确切代码行号,但少应该能够查到程序中可能引发错误的那部分代码。

  1.5 预备

  本章中我们学何使用Node.js和npm在你的机器上安装CoffeeScript。你还使用自己爱的编辑器与这门语言来了次亲密接触,探究了使用CoffeeScript作为开发流程一部分的一些方法,并且认识到了调试工作的挑战。

  既然现在你已经知道了如何运行CoffeeScript代码,是时候深入了解该语言自身的具体细节了。本书的剩余部分会有大量小代码段,跟上思路的好方法是在编辑器中运行这些代码。如果搞不清楚它们是如何工作的,尝试修改一两行代码看看会发生什么。你也可以时不时地看一下编译后的JavaScript代码。

  想要运行这种涉及某个文件的代码段,还需要额外的代码段才行:

  GettingStarted/outOfContext.coffee

  那些并不涉及某个文件的代码段则能***运行:

  请相信我,如果你的编辑器配置了运行命令的话将更加有趣,只需轻轻敲击快捷键能查看代码运行结果了。这是CoffeeScript初学者的好伙伴!

  ……



原文赏析:

You don’t have to be John “ JavaScript Ninja” Resig. In fact, if you’re only an *** JavaScripter, great! You’ll learn a lot about JavaScript as you go through this book.


c ?= d is shorthand for c = d unless c?.


father =

name: 'John'

daughter:

name: 'Jill'

son:

name: 'Jack'


window.debugMode = document.location.hash.match(/debug/) and c***ole?

c***ole.log 'This is the first of many debug-mode outputs' if debugMode


Once you’ve got a jQuery object, you have a massive arsenal of functi***

at your disposal


这里是 CoffeeScript 从 Ruby 那里获得了灵感,隐式地返回每个函数的最后一个表达式的值。


其它内容:

书籍介绍

内容简介:

作为唯一所有主流浏览器都支持的脚本语言,JavaScript俨然已成为Web开发领域最具号召力的语言,但它的种种语言怪癖以及在各种浏览器间实现不一致等问题也为开发人员所诟病。2009年底,CoffeeScript横空出世。它吸收了JavaScript语言的精华,并添加了很多现代语言脚本的特性,很快便得到了大量Web开发人员的青睐。

本书由CoffeeScript重要贡献者Trevor Burnham操刀,从基础知识入手,全面详尽地介绍了CoffeeScript这门新语言。通过一个5×5拼字游戏,作者将CoffeeScript各方面的知识融入其中,通俗易懂地讲解了CoffeeScript如何与jQuery等非常流行的类库完美集成,如何游刃有余地结合Socket.IO实现Node.js双通道异步通信。每章结尾都有精心设计的习题,有助于读者巩固所学的CoffeeScript知识并更上一层楼。

掌握CoffeeScript,Web开发之旅将更轻松、快捷和优雅!


书籍真实打分

  • 故事情节:7分

  • 人物塑造:4分

  • 主题深度:5分

  • 文字风格:9分

  • 语言运用:8分

  • 文笔流畅:9分

  • 思想传递:5分

  • 知识深度:8分

  • 知识广度:6分

  • 实用性:3分

  • 章节划分:5分

  • 结构布局:9分

  • 新颖与独特:3分

  • 情感共鸣:9分

  • 引人入胜:9分

  • 现实相关:9分

  • 沉浸感:5分

  • 事实准确性:3分

  • 文化贡献:6分


网站评分

  • 书籍多样性:3分

  • 书籍信息完全性:7分

  • 网站更新速度:8分

  • 使用便利性:5分

  • 书籍清晰度:4分

  • 书籍格式兼容性:8分

  • 是否包含广告:5分

  • 加载速度:4分

  • 安全性:4分

  • 稳定性:3分

  • 搜索功能:7分

  • 下载便捷性:8分


下载点评

  • epub(131+)
  • 无盗版(137+)
  • 体验满分(455+)
  • 微信读书(98+)
  • 书籍完整(637+)
  • 五星好评(260+)
  • 赚了(172+)
  • 图书多(286+)
  • 速度慢(315+)
  • 已买(306+)
  • 小说多(379+)
  • 简单(356+)
  • 好评多(607+)

下载评价

  • 网友 车***波:

    很好,下载出来的内容没有乱码。

  • 网友 苍***如:

    什么格式都有的呀。

  • 网友 后***之:

    强烈推荐!无论下载速度还是书籍内容都没话说 真的很良心!

  • 网友 饶***丽:

    下载方式特简单,一直点就好了。

  • 网友 隗***杉:

    挺好的,还好看!支持!快下载吧!

  • 网友 戈***玉:

    特别棒

  • 网友 家***丝:

    好6666666

  • 网友 寇***音:

    好,真的挺使用的!

  • 网友 权***波:

    收费就是好,还可以多种搜索,实在不行直接留言,24小时没发到你邮箱自动退款的!

  • 网友 詹***萍:

    好评的,这是自己一直选择的下载书的网站

  • 网友 焦***山:

    不错。。。。。

  • 网友 曾***文:

    五星好评哦


随机推荐