介绍

coffeeScript是一种轻量级的编程语言,可以用编译器生成原生javascript代码。它简化了许多javascript繁琐的方式,可以让你用简单的方式直接使用一行程序代表javascript多行代码,而且编译后还会根据最佳实践优化javascript代码。它的语法像是pythonruby的混合,不用括号控制排版,直接用缩进表示。建议初学者一边写coffeescript,一边对照生成的javascript代码,可以很快的了解coffeescript的意义。 浏览器最后执行的还是编译后的javascript代码。

语法

去掉多余的符号&&使用缩进

首先来看一个 coffeescript demo:

if elvisalert "oh no"elvis = 3

编译成 javascript 代码之后:

if (elvis){alert("oh no");elvis = 3;
}

看上面的coffee代码和js代码,js中的圆括号被去掉了,画括号也去掉了,分号;也去掉了。

再比如:

if elvisalert "oh no"
elvis = 3

编译成 javascript 代码之后:

if (elvis){alert("oh no");
}
elvis = 3;

最后一句代码缩进方式不同,导致最终编译的js也不一样,coffee就是根据tab缩进来进行排版的。

函数

声明函数时coffee默认会把最后一行作为函数的返回值,可以不加return,如果返回值为空,可以加上return

例如:

fill = (x) ->x * x

编译后的js为:

var fill;
fill = function(x){return x * x;
}

字符串占位符

这是coffe中最爱的一点,因为javascript中没有类似c#中的string.Format()方法,拼接很长的字符串时代码看起来可读性很差。

# 这是cofee的注释
eat = (x) -> alert "I eat #{x}!"
eat food for food in ['toast', 'cheese', 'wine']

编译后的js代码:

var eat, food, _i, _len, _ref;eat = function(x) {return alert("I eat " + x + "!");
};_ref = ['toast', 'cheese', 'wine'];
for (_i = 0, _len = _ref.length; _i < _len; _i++) {food = _ref[_i];eat(food);
}

这里可以看出来使用coffee有多省事了吧。

区间使用

coffee有一个像java一样的...的语法:

# ... 表示区间
numbers = [0,1,2,3,4,5,6,7,8,9]
copy = numbers[0...numbers.length]
middle = numbers[3...6]

关于 ==!= 之间的比较

在coffee中没有==,一律使用===,所以也就没有!=,只有!==。javascript中=====的区别是:

三等操作符===用来判断两个变量是否相等,相等的前提是同样的类型和同样的值。

具体请参考我的另一篇文章。

对象判空

coffee可以使用?来判断参数是否已定义或是null值,例如:

if elvis?alert "oh no"elvis = 3

编译后的js代码:

var elvis;if (typeof elvis !== "undefined" && elvis !== null) {alert("oh no");elvis = 3;
}

CoffeeScript简介 一相关推荐

  1. CoffeeScript 简介与安装步骤概览

    CoffeeScript 简介与安装步骤概览 一.关于CoffeeScript CoffeeScript是一门新兴的构建在JavaScript之上的预处理器语言,经过编译可以生成高效的JavaScri ...

  2. typescript和coffeescript简介

    typescript 1.什么是typescript?和JavaScript有什么关系? 1.它是一门独立的语言,实现了自己的编译器   2.它的目标代码是JavaScript(很多语言的目标代码是机 ...

  3. CoffeeScript简介 二

    集合与迭代 .. 与 ... 先看例子: arr = ["a1", "a2", "a3", "a4", "a5 ...

  4. CoffeeScript入门

    官网文档传送门 CoffeeScript简介 CoffeeScript 是一门编译到 JavaScript 的小巧语言. 在 Java 般笨拙的外表下, JavaScript 其实有着一颗华丽的心脏. ...

  5. CoffeeScript - CoffeeScript安装使用入门

    CoffeeScript英文官网: http://coffeescript.org/ CoffeeScript中文官网: http://coffee-script.org/ CoffeeScript简 ...

  6. CoffeeScript 的简介与代码实例

    前段时间公司的一个项目是用CoffeeScript和backbone写的,于是去学了一下CoffeeScript,在此给大家分享一下 CoffeeScript--简介 我们知道JavaScript是硬 ...

  7. 开源:Angularjs示例--Sonar中项目使用语言分布图(CoffeeScript版)

    关于SonarLanguage是什么东东,这里就不在描述了,如果你对它感兴趣的话,请移步到上篇随笔开源:Angularjs示例--Sonar中项目使用语言分布图.这里是最近学习CoffeeScript ...

  8. Python的IDE之PyCharm:PyCharm的简介、安装、入门、使用方法之详细攻略

    Python的IDE之PyCharm:PyCharm的简介.入门.使用方法之详细攻略 目录 PyCharm的简介 PyCharm的安装 JetBrains公司相关产品 下载地址01 下载地址02 下载 ...

  9. gulp+webpack工具整合简介

    webpack简介 Webpack 是一个模块打包器.它将根据模块的依赖关系进行静态分析,然后将这些模块按照指定的规则生成对应的静态资源. webpack特点 Webpack 有两种组织模块依赖的方式 ...

最新文章

  1. 无线网络未来十年十大产业趋势
  2. python解一元二次方程步骤-一元二次方程解法的实现(Python)
  3. 网络工程师面试:简要回答一下故障排除的过程?
  4. 离散数学平面图对偶图和着色问题
  5. java hasfocus_Java KeyEvent.hasNoModifiers方法代碼示例
  6. centos7安装java6_CentOS7.6安装jdk1.8
  7. CentOS5.5下SVN部署文档
  8. 浅谈linux系统下常见的故障与处理方法
  9. Linux搜寻文件或目录命令解析
  10. Flex4的可视化显示对象
  11. QT常用控件——QListView控件
  12. C#NPOI获取Excel的列名
  13. 企业的病毒,要及时清理
  14. 未能创建 SSL/TLS 安全通道解决方案
  15. 手机抢红包助手深陷作弊指责 部分外挂植入木马
  16. Python基于OpenCV的指针式表盘检测系统(附带源码&技术文档)
  17. 又到招聘季,说说网络招聘的那些坑!!!
  18. 数一英一408,超高分数线392分!上海交大计算机学硕
  19. 富文本框让最大四百像素_8 大功能,适合摄影师、设计师的开源工具集
  20. Redis框架从入门到学精(全)

热门文章

  1. 最贵5000!小米最贵旗舰MIX 3发布,雷军:干翻华为
  2. 干货 | 如何写一个更好的Python函数?
  3. 美国重金投资3D芯片项目!MIT+美独资公司攻关,旨在继续领先中国
  4. Test.ai完成1100万美元A轮融资,Google人工智能基金领投
  5. 腾讯美的入股的语音AI公司SoundHound,拿什么挑战谷歌亚马逊?
  6. 软银领投Petuum 9300万美元融资,CMU邢波想让AI走进普通企业
  7. 什么是语义化的HTML?有何意义?为什么要做到语义化?
  8. $.ajax和$.post的区别(前者根据key-value/后者根据形参)
  9. Android studio 升级指定dradle
  10. 《谈谈认同》这个文章有点晦涩 写的不太好