CoffeeScript的缩进
CoffeeScript用缩进代替了花括符“{}”,作用范围的划分只靠缩进。这带来代码精简、简洁的同时,有时候也让人困惑。
比如说:
if 3 > 1
alert("噢,宇宙真理!");
else
alert("顶!支持!威武!有希望了!");
编译成javascript,就是
if (3 > 1) {
alert("噢,宇宙真理!");
} else {
alert("顶!支持!威武!有希望了!");
}
1、这个缩进,最重要的是缩进的层次,而每层缩进多少,是2个字符,还是4个字符,都没有关系。比如:
if 3 > 1
alert("噢,宇宙真理!");
alert("顶!支持!威武!有希望了!");
==》javascript:
if (3 > 1) {
alert("噢,宇宙真理!");
}
alert("顶!支持!威武!有希望了!");
可以看到,两个alert,所属缩进层次不同,因此会有不同的作用范围。
if 3 > 1
alert("噢,宇宙真理!");
alert("顶!支持!威武!有希望了!");
==>javacript:
if (3 > 1) {
alert("噢,宇宙真理!");
alert("顶!支持!威武!有希望了!");
}
2个alert在这里都是缩进了2个字符。如果都缩进4个字符、8个字符,编译结果都是一样的。缩进,最重要的是缩进的层次,而每层缩进多少个字符,并无硬性规定。
2、缩进的时候,要么全部用tab,要么全部用空格,绝对不能混用,否则编译不通过
这也是coffeescript最令人蛋疼的地方。
但单从外观看,很难区分用tab键的缩进和空格键的缩进有什么区别。如果用sublime text作为编辑工具,只要Ctrl + A,全选,就能看到二者的不同。并且,其右下角可以选每个层次的缩进字符数,十分方便。如果勾选了 "Indent using spaces"选项,那么在sublime text里,按tab和按空格键都可以,sublime text会统一处理为空格。
CoffeeScript的缩进的更多相关文章
- emmet,jade,haml, slim,less,sass,coffeescript等的实战优缺点
摘要: 文章背景,来自于群内周五晚上的一次头脑风暴式的思维碰撞交流活动. 随着前端技术的蓬勃发展, 各种新技术随着生产力的需要不断的涌入我们的视野, 那今天探讨的话题是这些新时代的前端兵器谱: 一. ...
- 《CoffeeScript应用开发》学习:第二章 编写第一个CoffeeScript应用程序
CoffeeScript基础 语句 CoffeeScript没有分号,语句由新的一行结束,但是可以使用\将语句延续至下一行. 有时可以跨行实现函数调用: "foo". .conca ...
- coffeeScript学习01
安装 这里使用node.js npm install -g coffee-script # watch and compile coffee -w --output lib --compile src ...
- coffeeScript 语法总结
CoffeeScript ---->安装node.js ---->安装coffeeScript 语句: 注意:没有分号,语句由新的一行结束:多条语句写到同一行时需要分号表示一条语句的结束( ...
- CoffeeScript学习(3)—— 函数
CoffeeScript函数 如果大家有看我之前关于ES6的箭头函数的话,这一篇也不会很难理解.我们这一次可以说一下,关于两者的一些细微差别. 基本 在CoffeeScript中,任何函数都是用箭头函 ...
- CoffeeScript学习(1)——Quick Start
什么是CoffeeScript CoffeeScript 是一门编译到 JavaScript 的小巧语言. 在 Java 般笨拙的外表下, JavaScript 其实有着一颗华丽的心脏. Coffee ...
- CoffeeScript 入门笔记
写在前面: 被英文版指南坑了...闹了很久才明白.coffee怎么用.安装前需要有稳定版 Node.js, 和 npm (Node Package Manager). 借助 npm 可以安装 Coff ...
- CoffeeScript简介 <一>
介绍 coffeeScript是一种轻量级的编程语言,可以用编译器生成原生javascript代码.它简化了许多javascript繁琐的方式,可以让你用简单的方式直接使用一行程序代表javascri ...
- (六)我的JavaScript系列:更好的JavaScript之CoffeeScript
世界上的很多天才都在为构建更好的JavaScript而努力.已经有了很多尝试,其中最有前途的,无非就是CoffeeScript和TypeScript了.面对CoffeeScript,我有一见如故的感觉 ...
随机推荐
- 在Resource中使用x:Bind
Build2015上,MS热情高涨的演示了x:Bind,一种新的Binding方式,新的方式有如下优点: 1更好的性能(内存占用,CPU占用) 2BuildTime的Binding 具体在Channe ...
- HDU_1011_Starship Troopers_树型dp
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1011 Starship Troopers Time Limit: 10000/5000 MS (Jav ...
- ajax aspx调用webservice,返回json
1,创建一个asp.net网站 2.创建一个student类 using System; using System.Collections.Generic; using System.Linq; us ...
- Python学习笔记(1)对象类型
强制转换字符串函数str 如果我们求2的一百万次方是多少那么我们可以 print(2**1000000) 如果我们要求2的一百万次方有多少位那么我们可以用str函数强制转换成字符串然后len函数计算 ...
- centos7+VMware Workstation创建共享文件夹
1.第一步设置宿主机共享文件夹路径 2.挂载VMware Tools,如下操作会将tools以光盘挂载点的方式进入到系统中. 3.centos7 挂载存有VMware Tools的光盘并进行安装 1) ...
- 第一章 Linux命令行简介
1 Linux系统命令操作语法的格式 命令_[参数选项]_[文件或路径] 其中 _ 至少一个空格 如:rm -f /etc/hosts 其中/etc/hosts完整路径不带空格 ...
- 洛谷 1062 NOIP2006普及T4 数列
[题解] 鲜活的水题..我们把数列换成k进制的,发现数列是001,010,011,100,101,110,111...,而第m项用k进制表示的01串刚好就是m的二进制的01串.于是我们预处理k的幂,把 ...
- Leetcode 90.子集
子集 给定一个可能包含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集). 说明:解集不能包含重复的子集. 示例: 输入: [1,2,2] 输出: [ [2], [1], [1,2,2], ...
- 如何用Bugzilla系统管理产品研发过中相关需求和bug
目 录 1.Bug处理流程及状态说明 2.bugs字段说明 3.查询报表的使用 4.bug系统与需求系统的整合 5.流程和用户权限 1. Bug处理流程及状态说明(1) BUG状态流程图 BUG的状态 ...
- Ubuntu下常规方法安装软件
一.通过apt-get 搜索: #搜索 apt-cache searche 7zip 安装: #安装 sudo apt-get install 7zip 更新: #查看特定软件的版本,前提是要安装ap ...