微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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/

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。