CoffeeScript系列教程(一)—概述
概述
CoffeeScript是一门编译到JavaScript的小巧语言。CoffeeScript尝试用简洁的方式展示JavaScript优秀的部分。创建者Jeremy Ashkenas戏称它是JavaScript 的不那么铺张的小兄弟。
CoffeeScript就是将代码一一对应编译到JavaScript,当然了它仅仅是编译到JavaScript,不会在编译过程中执行JavaScript代码的。
CoffeeScript语法简洁,类似Ruby。基本原则就是用更少的代码实现更多的功能。编译过后的代码执行速度只会跟我们用JavaScript编写的代码一样快或者更快,大家不用担心执行速度的问题。
简单DEMO(选自官方)
编译前:
# 赋值:
number = 42
opposite = true# 条件:
number = -42 if opposite# 函数:
square = (x) -> x * x# 数组:
list = [1, 2, 3, 4, 5]# 对象:
math =root: Math.sqrtsquare: squarecube: (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)
编译后:
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;
})();
CoffeeScript系列教程(一)—概述相关推荐
- CoffeeScript系列教程(二)—安装和使用
CoffeeScript是一门编译到JavaScript的语言,肯定需要一个编译器的.实际上CoffeeScript编译器也是用CoffeeScript编写的(自己编译自己?感觉好屌的样子!).你可以 ...
- 2021年最新最全Flink系列教程_Flink快速入门(概述,安装部署)(一)(JianYi收藏)
文章目录 引言 相关教程直通车: day01_Flink概述.安装部署和入门案例 今日目标 Flink概述 什么是批处理和流处理 为什么需要流计算 Flink的发展史 Flink的官方介绍 Flink ...
- python机器学习案例系列教程——GBDT算法、XGBOOST算法
全栈工程师开发手册 (作者:栾鹏) python数据挖掘系列教程 GBDT概述 GBDT也是集成学习Boosting家族的成员,但是却和传统的Adaboost有很大的不同.回顾下Adaboost,我们 ...
- python机器学习案例系列教程——BIRCH聚类
全栈工程师开发手册 (作者:栾鹏) python数据挖掘系列教程 BIRCH概述 BIRCH的全称是利用层次方法的平衡迭代规约和聚类(Balanced Iterative Reducing and C ...
- WebRTC实时通信系列教程8 打通P2P连接和信令通信
[转载请注明出处: http://blog.csdn.net/leytton/article/details/76836265] PS:如果本文对您有帮助,请点个赞让我知道哦~ <WebRTC ...
- WebRTC实时通信系列教程9 数据通道图片传输
[转载请注明出处: http://blog.csdn.net/leytton/article/details/76838194] PS:如果本文对您有帮助,请点个赞让我知道哦~ <WebRTC ...
- EWSTM8系列教程03_主窗口、工具栏的概述
IAR最新全套教程: 1.EWSTM8系列教程01_IAR介绍.下载.安装和注册 2.EWSTM8系列教程02_新建基础软件工程 3.EWSTM8系列教程03_主窗口.工具栏的概述 4.EWSTM8系 ...
- EWSTM8系列教程04_菜单概述(一)
IAR最新全套教程: 1.EWSTM8系列教程01_IAR介绍.下载.安装和注册 2.EWSTM8系列教程02_新建基础软件工程 3.EWSTM8系列教程03_主窗口.工具栏的概述 4.EWSTM8系 ...
- 王姨劝我学HarmonyOS鸿蒙2.0系列教程之三Ability概述调用方法!
原创PDF |<Android 深入系统完全讲解>免费开源,可能价值百万! 王姨劝我学HarmonyOS鸿蒙2.0系列教程之一环境搭建&&跑起来模拟器! 王姨劝我学Harm ...
最新文章
- 关于OUTLOOK 2007邮件无法打印的问题解决方法
- Socket 通信原理(Android客户端和服务器以TCPUDP方式互通)
- java线程同步的五种方法
- wxWidgets:wxEraseEvent类用法
- 对DataTable里数据进行排序
- nodejs mysql 编码_nodejs 查询mysql数据库的数据显示乱码
- pixelbook安装linux系统,谷歌Pixelbook可以运行Fuchsia操作系统 正测试
- idea中pom.xml文件横线解决办法
- FutureTask的get()方法之异常处理
- html解决ajax调用跨域,JQuery Ajax执行跨域请求数据的解决方案
- SqlServer数据库的语句及一些操作整理
- 计算机组成原理mips汇编大作业报告(冒泡排序、选择排序)
- CLion程序编译错误 0xC0000135
- 斜杠青年:人生的多种可能
- revit怎么看服务器文件,Revit载入族后,如何快速找到族文件?
- Python批量采集某网站高清壁纸,这下不用担心没壁纸换了
- 图论入门(一),拓扑排序生成拓扑序列与Dijkstra求最短路
- indexedDB使用
- 平面设计和ui设计_美丽的平面UI设计展示
- java 支付宝回调返回值,支付宝APP支付Java回调具体步骤
热门文章
- 基于Sigma protocol实现的零知识证明protocol集锦
- 新支持APP 公众号聊天在线客服程序源码
- STM32的AFIO时钟什么时候需要开启
- 2021年G1工业锅炉司炉考试平台及G1工业锅炉司炉作业考试题库
- 微信小程序网悦新闻开发--小程序配置(二)
- c语言字符就地逆置,高手看看我的C语言代码单链表实现就地逆置
- Java基础题10:(单选题)以下代码的输出结果是() public class Test { public static void main(String[] args) { Stri
- 漏洞挖掘所需能力梳理,查漏补缺(更新中~)
- “enumeration value ‘xxxxx‘ not handled in switch“警告
- 采闲云一朵,入墨修心!