好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

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/

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

查看更多关于CoffeeScript的详细内容...

  阅读:27次

上一篇

下一篇

第1节:curl.js    第2节:jade    第3节:jspm-cli    第4节:angular-cli    第5节:lerna    第6节:duo.js    第7节:swc    第8节:WebJars    第9节:fetch    第10节:babel-plugin-preval    第11节:browserify    第12节:Lebab    第13节:bundle-buddy    第14节:esprima    第15节:FIS3    第16节:prerender-loader    第17节:Parcel    第18节:lit-html    第19节:Neutrino    第20节:walle    第21节:webpack    第22节:pug    第23节:bower    第24节:Snowpack    第25节:template.js    第26节:Forge    第27节:stylis.js    第28节:Liquid    第29节:npx    第30节:jss    第31节:component    第32节:faster.js    第33节:Juicer    第34节:Jiko    第35节:laytpl    第36节:CoffeeScript    第37节:ghcjs    第38节:critters    第39节:vue-loader    第40节:swig    第41节:Workerize    第42节:Bit    第43节:Acorn    第44节:hyperHTML    第45节:ESL    第46节:script.js    第47节:yarn    第48节:MobX    第49节:Vulcan    第50节:vue-cli    第51节:WeFlow    第52节:qiankun乾坤    第53节:elf    第54节:create-react-app    第55节:CNPM    第56节:codelyzer    第57节:electron-webpack    第58节:dot-dom    第59节:prerender    第60节:assemblyscript    第61节:jarvis    第62节:Rollup    第63节:webpack-dashboard    第64节:worker-plugin    第65节:webpack-encore    第66节:HEAD    第67节:poi    第68节:dawn    第69节:mustache.js    第70节:shipit    第71节:Flow    第72节:teletype    第73节:Dust.js    第74节:Athena    第75节:npm    第76节:Koala    第77节:webpackmonitor    第78节:ndm    第79节:size-plugin    第80节:seajs    第81节:prepack-webpack-plugin    第82节:webpack-simple-starter    第83节:Verdaccio    第84节:doT.js    第85节:bonsai    第86节:arttemplate    第87节:UiBot RPA    第88节:EJS    第89节:mern-starter    第90节:v8.dev    第91节:renovate    第92节:happypack    第93节:gulp    第94节:grunt    第95节:microbundle    第96节:handlebars.js    第97节:micro    第98节:tink    第99节:min-cli    第100节:Snibox    第101节:Codekit    第102节:WebAssembly    第103节:webpack-bundle-analyzer    第104节:htm    第105节:yeoman    第106节:Broccoli.js    第107节:jetpack    第108节:ied    第109节:Ender    第110节:Nunjucks    第111节:splittable    第112节:closure-compiler    第113节:react-boilerplate    第114节:SystemJS    第115节:electron-webpack-dashboard    第116节:fuse-box    第117节:jsvu    第118节:tmt-workflow    第119节:Cooking    第120节:hogan.js