CoffeeScript

编程之家收集整理的这个编程导航主要介绍了CoffeeScript编程之家,现在分享给大家,也给大家做个参考。

CoffeeScript

CoffeeScript 介绍

CoffeeScript是一套JavaScript的转译语言,创建者 Jeremy Ashkenas 戏称它是- JavaScript 的不那么铺张的小兄弟。因为 CoffeeScript 会将类似 Ruby 语法的代码编译成 JavaScript,而且大部分结构都相似,但不同的是 CoffeeScript 拥有更严格的语法。

CoffeeScript和TypeScript一样,都是编译为JavaScript的语言,它们都增强了JavaScript的表达能力。 所谓编译为JavaScript,是指CoffeeScript和TypeScript没有实现自己的运行时,它们都是编译为等价的JavaScript代码,然后放在JavaScript的解释器上运行。 

CoffeeScript给人最大的印象就是其简洁的表达。 

# 赋值:

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)

上面的代码会编译为等价的JavaScript代码: 

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,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力求简洁。其简洁性首先表现在对一些仅用于语法控制的符号进行了去除。这其中包括:

取消分号

取消var声明

取消大括号包围内层代码,使用缩进取代

函数调用在没有歧义的情况下可以省略括号

var声明涉及到复杂又很鸡肋的JavaScript变量作用域机制。这部分内容先放着不讲。CoffeeScript通过完全取消var声明机制而使得问题得到简化。总之,在CoffeeScript世界里,变量不用事先声明,直接用就是了。而且这种用法基本没有什么危险。

缩进在CoffeeScript中不仅仅在于美化代码,其代表了代码层次的组织,是有特别的含义的。简单地说就是,不适用大括号包围内层代码,而是内层代码要缩进。不同的缩进代表了不同的代码层次。形式和内容是一致的。

 

 

网站地址:http://coffeescript.org/

GitHub:https://github.com/jashkenas/coffeescript

网站描述:一套JavaScript的转译语言

CoffeeScript官方网站

官方网站:http://coffeescript.org/

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

相关文章

jade,Jade 是一个高性能的模板引擎,以 JavaScript 的形式集...
curl.js,轻量级,快速,可扩展的模块加载
jspm-cli,基于SystemJS的Js包管理器
angular-cli,快速构建Angular2项目
lerna,一款多项目多模块的管理工具
duo.js,前端的下一代包管理器。