`
流浪的我
  • 浏览: 34142 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

coffeeScript

 
阅读更多

CoffeeScript 是一门编译到 JavaScript 的小巧语言. 在 Java 般笨拙的外表下, JavaScript 其实有着一颗华丽的心脏. CoffeeScript 尝试用简洁的方式展示 JavaScript 优秀的部分.

CoffeeScript 的指导原则是: "她仅仅是 JavaScript". 代码一一对应地编译到 JS, 不会在编译过程中进行解释. 已有的 JavaScript 类库可以无缝地和 CoffeeScript 搭配使用, 反之亦然. 编译后的代码是可读的, 且经过美化, 能在所有 JavaScript 环境中运行, 并且应该和对应手写的 JavaScript 一样快或者更快.

最新版本: 1.7.1

sudo npm install -g coffee-script

概览

左边是 CoffeeScript, 右边是编译后输出的 JavaScript.

# 赋值:
number   = 42
opposite = true

# 条件:
number = -42 if opposite

# 函数:
square = (x) -> x * x

# 数组:
list = [1, 2, 3, 4, 5]

# 对象:
math =
  root:   Math.sqrt
  square: square
  cube:   (x) -> x * square x

# Splats:
race = (winner, runners...) ->
  print winner, runners

# 存在性:
alert "I knew it!" if elvis?

# 数组 推导(comprehensions):
cubes = (math.cube num for num in list)
var cubes, list, math, num, number, opposite, race, square,
  __slice = [].slice;

number = 42;

opposite = true;

if (opposite) {
  number = -42;
}

square = function(x) {
  return x * x;
};

list = [1, 2, 3, 4, 5];

math = {
  root: Math.sqrt,
  square: square,
  cube: function(x) {
    return x * square(x);
  }
};

race = function() {
  var runners, winner;
  winner = arguments[0], runners = 2 <= arguments.length ? __slice.call(arguments, 1) : [];
  return print(winner, runners);
};

if (typeof elvis !== "undefined" && elvis !== null) {
  alert("I knew it!");
}

cubes = (function() {
  var _i, _len, _results;
  _results = [];
  for (_i = 0, _len = list.length; _i < _len; _i++) {
    num = list[_i];
    _results.push(math.cube(num));
  }
  return _results;
})();
run: cubes

安装

CoffeeScript 编译器本身是 CoffeeScript 写的, 使用了 Jison parser generator. 命令行版本的 coffee 是一个实用的 Node.js 工具. 不过编译器并不依赖 Node, 而是能运行于任何 JavaScript 执行环境, 比如说在浏览器里(看上边的"试一试 CoffeeScript").

安装前你需要最新稳定版 Node.js, 和 npm (Node Package Manager). 借助 npm 可以安装 CoffeeScript:

npm install -g coffee-script

(如果不想全局安装可以去掉 -g 选项.)

如果你希望安装 master 分支上最新的 CoffeeScript, 你可以从源码仓库 克隆 CoffeeScript, 或直接下载源码. 还有通过 npm 方式安装 master 分支最新的 CoffeeScript 编译器:

npm install -g http://github.com/jashkenas/coffee-script/tarball/master

或者你想将其安装到 /usr/local, 而不用 npm 进行管理, 进入 coffee-script 目录执行:

sudo bin/cake install

用法

安装之后, 你应该可以运行 coffee 命令以执行脚本, 编译 .coffee 文件到 .js 文件, 和提供一个交互式的 REPL. coffee 命令有下列参数:

-c, --compile 编译一个 .coffee 脚本到一个同名的 .js 文件.
-m, --map 随 JavaScript 文件一起生成 source maps. 并且在 JavaScript 里加上 sourceMappingURL 指令.
-i, --interactive 启动一个交互式的 CoffeeScript 会话用来尝试一些代码片段. 等同于执行 coffee 而不加参数.
-o, --output [DIR] 将所有编译后的 JavaScript 文件写到指定文件夹. 与 --compile 或 --watch 搭配使用.
-j, --join [FILE] 编译之前, 按参数传入顺序连接所有脚本到一起, 编译后写到指定的文件. 对于编译大型项目有用.
-w, --watch 监视文件改变, 任何文件更新时重新执行命令.
-p, --print JavaScript 直接打印到 stdout 而不是写到一个文件.
-s, --stdio 将 CoffeeScript 传递到 STDIN 后从 STDOUT 获取 JavaScript. 对其他语言写的进程有好处. 比如:
cat src/cake.coffee | coffee -sc
-l, --literate 将代码作为 Literate CoffeeScript 解析. 只会在从 stdio 直接传入代码或者处理某些没有后缀的文件名需要写明这点.
-e, --eval 直接从命令行编译和打印一小段 CoffeeScript. 比如:
coffee -e "console.log num for num in [10..1]"
-b, --bare 编译到 JavaScript 时去掉顶层函数的包裹.
-t, --tokens 不对 CoffeeScript 进行解析, 仅仅进行 lex, 打印出 token stream:[IDENTIFIER square] [ASSIGN =] [PARAM_START (] ...
-n, --nodes 不对 CoffeeScript 进行编译, 仅仅 lex 和解析, 打印 parse tree:
Expressions
  Assign
    Value "square"
    Code "x"
      Op *
        Value "x"
        Value "x"
--nodejs node 命令有一些实用的参数, 比如
--debug--debug-brk--max-stack-size, 和 --expose-gc. 用这个参数直接把参数转发到 Node.js. 重复使用 --nodejs 来传递多个参数.

来源链接:http://coffee-script.org

 

 

分享到:
评论

相关推荐

    coffeescript

    CoffeeScript是一种优雅的编程语言,旨在让开发者以更轻松、更有趣的方式编写JavaScript代码。它是一种小型的、可编译成JavaScript的语言,被设计为能运行在任何JavaScript可以运行的环境中。CoffeeScript的主要目的...

    Coffeescript中文手册

    CoffeeScript 是一种简洁、优雅的编程语言,它旨在简化JavaScript的编写,提供更易读、易写的代码。通过CoffeeScript编写的代码会被自动编译成JavaScript,因此可以在任何支持JavaScript的环境中运行。以下是对标题...

    做web前端的同志们,想用coffeescript吗?苦于自己的web框架不支持?没关系!

    标题中的“做Web前端的同志们,想用Coffeescript吗?”揭示了本文将讨论的话题——Coffeescript在Web前端开发中的应用。Coffeescript是一种简洁、易读的JavaScript预处理器,它旨在简化JavaScript的语法,提高代码的...

    CoffeeScript速查表

    CoffeeScript 是一门编译到 JavaScript 的小巧语言. 在 Java 般笨拙的外表下, JavaScript 其实有着一颗华丽的心脏. CoffeeScript 尝试用简洁的方式展示 JavaScript 优秀的部分.

    Node.js-基于Koa2-CoffeeScript-PostgreSQL的服务器开发示例

    在本示例中,我们将深入探讨如何使用Node.js的Koa2框架,CoffeeScript编程语言以及PostgreSQL数据库来构建一个服务器。Koa2是Node.js社区广泛使用的Web应用框架,它由Express.js的作者创建,旨在提供更轻量级、模块...

    [CoffeeScript] CoffeeScript 编程 口袋书 (英文版)

    [Addison-Wesley Professional] CoffeeScript 编程 口袋书 (英文版) [Addison-Wesley Professional] The Little Book on CoffeeScript (E-Book) ☆ 出版信息:☆ [作者信息] Alex MacCaw [出版机构] Addison-...

    coffeescript programming with jquery rails and node.js

    CoffeeScript is a little language that compiles into JavaScript. Underneath that awkward Java-esque patina, JavaScript has always had a gorgeous heart. CoffeeScript is an attempt to expose the good ...

    coffeescript-java.zip

    coffeescript-java 是一个简单的 Java 类用来将 CoffeeScript 脚本转成 JavaScript 脚本。程序直接利用 Java 的脚本引擎来实现。 标签:coffeescript

    CoffeeScript 中文

    CoffeeScript 中文文档 详细说明了CoffeeScript的语法和与JavaScript同样的实现

    CoffeeScript - Accelerated JavaScript Development

    ### CoffeeScript:加速JavaScript开发 #### 一、CoffeeScript简介 CoffeeScript是一种旨在简化JavaScript编程的语言,它通过去除JavaScript中的冗余部分,使得代码更加简洁、易读且更易于编写。CoffeeScript的...

    CoffeeScript:简化JavaScript代码的优雅选择

    CoffeeScript是一种高级编程语言,它编译成JavaScript,同时紧密遵循JavaScript的习惯用法。CoffeeScript的设计初衷是简化JavaScript代码,提高开发效率和代码可读性。本文将深入探讨CoffeeScript的主要特点,并通过...

    CoffeeScript:函数式编程的优雅实践

    CoffeeScript,作为一种编译成JavaScript的语言,不仅简化了JavaScript的语法,还引入了许多现代编程语言的特性,特别是函数式编程的概念。函数式编程(Functional Programming,FP)是一种编程范式,它将计算视为...

Global site tag (gtag.js) - Google Analytics