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米代金券、领会最新阿里云产物的种种优惠流动点击进入
本文导读目录: 1、世界上最顶尖的黑客能厉害到什么程度 2、黑客隐藏身份如何检测出来 3、黑客使用虚拟机入侵,如果无法通过IP追踪,是不是就无法抓到他?(现实中 的推理无效) 4、如何跟踪...
本文导读目录: 1、黑客一般使用什么笔记本电脑? 2、被黑客攻击的电脑是什么样子? 3、黑客用的电脑配置是怎么样的? 4、黑客的电脑配置要求是什么? 5、电脑被黑客攻击后是什么样子的?...
当地时间28日晚,法国总统马克龙宣布,法国从10月30日起重新实行封锁措施,以应对新冠肺炎疫情的迅猛反弹。 马克龙当晚就法国新冠疫情发展及政府应对措施发表电视讲话。他表示,与第一轮疫情相比,...
大家好,今天早上逛街买水果的时候,看见街上的猕猴桃还挺新鲜,于是便花10块钱买了10斤的猕猴桃带回家,2块钱1斤的猕猴桃真的特别便宜,10块钱就能得上一小袋,美味又好吃。 猕猴桃这道水果的营养价值,...
当地时间28日,首批由中国科兴公司生产的新冠疫苗运抵智利首都圣地亚哥。智利总统皮涅拉前往机场迎接疫苗抵达。 皮涅拉在机场举行的新闻发布会上说,这是令人兴奋、期待的一天,中国科兴疫苗对智利抗击...
有别于其他行业,过快的“新陈代谢”给P2P行业带来了一些“负能量”。然而,经过春节一场场“红包秀”,一些P2P平台又收获了不错的人气与潜在客户。 比如,市民李先生通过微信领取某P2P平台的50元红包...