CoffeeScript简介 一
介绍
coffeeScript是一种轻量级的编程语言,可以用编译器生成原生javascript代码。它简化了许多javascript繁琐的方式,可以让你用简单的方式直接使用一行程序代表javascript多行代码,而且编译后还会根据最佳实践
优化javascript代码。它的语法像是python
和ruby
的混合,不用括号控制排版,直接用缩进表示。建议初学者一边写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简介 一相关推荐
- CoffeeScript 简介与安装步骤概览
CoffeeScript 简介与安装步骤概览 一.关于CoffeeScript CoffeeScript是一门新兴的构建在JavaScript之上的预处理器语言,经过编译可以生成高效的JavaScri ...
- typescript和coffeescript简介
typescript 1.什么是typescript?和JavaScript有什么关系? 1.它是一门独立的语言,实现了自己的编译器 2.它的目标代码是JavaScript(很多语言的目标代码是机 ...
- CoffeeScript简介 二
集合与迭代 .. 与 ... 先看例子: arr = ["a1", "a2", "a3", "a4", "a5 ...
- CoffeeScript入门
官网文档传送门 CoffeeScript简介 CoffeeScript 是一门编译到 JavaScript 的小巧语言. 在 Java 般笨拙的外表下, JavaScript 其实有着一颗华丽的心脏. ...
- CoffeeScript - CoffeeScript安装使用入门
CoffeeScript英文官网: http://coffeescript.org/ CoffeeScript中文官网: http://coffee-script.org/ CoffeeScript简 ...
- CoffeeScript 的简介与代码实例
前段时间公司的一个项目是用CoffeeScript和backbone写的,于是去学了一下CoffeeScript,在此给大家分享一下 CoffeeScript--简介 我们知道JavaScript是硬 ...
- 开源:Angularjs示例--Sonar中项目使用语言分布图(CoffeeScript版)
关于SonarLanguage是什么东东,这里就不在描述了,如果你对它感兴趣的话,请移步到上篇随笔开源:Angularjs示例--Sonar中项目使用语言分布图.这里是最近学习CoffeeScript ...
- Python的IDE之PyCharm:PyCharm的简介、安装、入门、使用方法之详细攻略
Python的IDE之PyCharm:PyCharm的简介.入门.使用方法之详细攻略 目录 PyCharm的简介 PyCharm的安装 JetBrains公司相关产品 下载地址01 下载地址02 下载 ...
- gulp+webpack工具整合简介
webpack简介 Webpack 是一个模块打包器.它将根据模块的依赖关系进行静态分析,然后将这些模块按照指定的规则生成对应的静态资源. webpack特点 Webpack 有两种组织模块依赖的方式 ...
最新文章
- 无线网络未来十年十大产业趋势
- python解一元二次方程步骤-一元二次方程解法的实现(Python)
- 网络工程师面试:简要回答一下故障排除的过程?
- 离散数学平面图对偶图和着色问题
- java hasfocus_Java KeyEvent.hasNoModifiers方法代碼示例
- centos7安装java6_CentOS7.6安装jdk1.8
- CentOS5.5下SVN部署文档
- 浅谈linux系统下常见的故障与处理方法
- Linux搜寻文件或目录命令解析
- Flex4的可视化显示对象
- QT常用控件——QListView控件
- C#NPOI获取Excel的列名
- 企业的病毒,要及时清理
- 未能创建 SSL/TLS 安全通道解决方案
- 手机抢红包助手深陷作弊指责 部分外挂植入木马
- Python基于OpenCV的指针式表盘检测系统(附带源码&技术文档)
- 又到招聘季,说说网络招聘的那些坑!!!
- 数一英一408,超高分数线392分!上海交大计算机学硕
- 富文本框让最大四百像素_8 大功能,适合摄影师、设计师的开源工具集
- Redis框架从入门到学精(全)
热门文章
- 最贵5000!小米最贵旗舰MIX 3发布,雷军:干翻华为
- 干货 | 如何写一个更好的Python函数?
- 美国重金投资3D芯片项目!MIT+美独资公司攻关,旨在继续领先中国
- Test.ai完成1100万美元A轮融资,Google人工智能基金领投
- 腾讯美的入股的语音AI公司SoundHound,拿什么挑战谷歌亚马逊?
- 软银领投Petuum 9300万美元融资,CMU邢波想让AI走进普通企业
- 什么是语义化的HTML?有何意义?为什么要做到语义化?
- $.ajax和$.post的区别(前者根据key-value/后者根据形参)
- Android studio 升级指定dradle
- 《谈谈认同》这个文章有点晦涩 写的不太好