CoffeeScript

访客3年前黑客文章789

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, 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力图简练。其简练性首先显示在对一些仅用于语法控制的符号进行了去除。这其中包罗:

  • 作废分号

  • 作废var声明

  • 作废大括号笼罩内层代码,使用缩进取代

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

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

缩进在CoffeeScript中不仅仅在于美化代码,其代表了代码条理的组织,是有稀奇的寄义的。简朴地说就是,不适用大括号笼罩内层代码,而是内层代码要缩进。差别的缩进代表了差别的代码条理。形式和内容是一致的。

 

 

思源资源网:分类流动

1.阿里云: 本站现在使用的是阿里云主机,平安/可靠/稳固。点击领取2000米代金券、领会最新阿里云产物的种种优惠流动点击进入

返回列表

上一篇:RemoveBG

下一篇:progress.js

相关文章

房产知识:住房公积金贷款购买二手房首期可以

相信现在有很多的朋友们对于住房公积金贷款购买二手房首期可以降低吗?都想要了解吧,那么今天小编就来给大家针对住房公积金贷款购买二手房首期可以降低吗?进行一个介绍吧,希望小编介绍的内容能够为大家起到帮助哦...

杨大鹏(杨大鹏个人资料)

  杨大鹏 星座:金牛座 身高:178cm 体重:特型 职业:喜剧演员 民 族: 汉 出生日期: 1978年5月 籍 贯: 哈尔滨市   24个篮球少年成为科比门徒: 白队名单: 褚文浩 黄世乾 张恒...

手口足(手口足病的症状)

答案提到:发高烧-头痛-咳嗽-没精神-想睡觉-烦躁-哭闹-流口水-不吃饭-高热 不管是不是,都必须去医院看一下!如要症状如下:1、大多数患儿是突然发病,首先表现为发高烧,体温多在38度以上,同时伴有头...

黑客帝国4片尾曲歌词(黑客帝国下一句是什么歌)

黑客帝国4片尾曲歌词(黑客帝国下一句是什么歌)

本文目录一览: 1、黑客帝国主题曲是什么? 2、郑智化有一歌里面歌词有一句是这样的:台湾的未来到底会怎样。 这是哪首歌的歌词? 3、黑客帝国3片尾曲歌词是什么意思啊比如第一句asatomasa...

推荐一个不错的热门互动搞笑动画《贱鸡行事》

谢谢本站网友:胖维尼分享,原帖地址,更多优异内容,请接见本站论坛。 《贱鸡行事》是大型真人互动网络综艺王牌搞笑动画节目 每一期一个吸引人的热门主题,挺有意思 现在已经出了两季了,节选了一集人人浏...

靠着母婴店卖什么产品(母婴店哪些产品值得买

靠着母婴店卖什么产品(母婴店哪些产品值得买

由于孩子爸爸出差,所以这一段时间我干脆带着宝宝回到了娘家住,今天发现宝宝的纸尿裤不太够了,就想趁着散步的时候带宝宝一起去母婴店买一些日用品。下楼没走多久就发现一家母婴店,一进门,导购很热情,各种夸我家...