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会统一处理为空格。

最新文章

  1. java内存泄露
  2. VS上利用C#实现一个简单的串口程序记录
  3. ResponsiveSlides.js最轻量级的幻灯片插件
  4. Darwin Streaming server 的 Task 类
  5. 使用XmlPullParser对xml进行读取
  6. linux中fork()函数详解(原创!!实例讲解)
  7. sybase SA密码重置
  8. Android---用动画来处理布局的变化
  9. uva 296 - Safebreaker
  10. uva Stacks of Flapjacks
  11. mysql之 MySQL 主从基于 GTID 复制原理概述
  12. 微服务框架surging学习之路——序列化
  13. MySql和Oracle数据库区别
  14. iOS 常用三方(持续更新)
  15. Confluence 6 通过 SSL 或 HTTPS 运行 - 为 HTTPS 修改你的 Confluence 基础 URL
  16. Saltstack之api
  17. JAVA实现WC.exe功能
  18. 20155322 2017-2018-1《信息安全系统设计》第十周 课下作业-IPC
  19. Linuxyum源切换阿里云软件源
  20. iOS开发苹果内购的介绍与实现

热门文章

  1. dubbo之服务容器
  2. Android(java)学习笔记206:JNI之工具快速开发步骤
  3. URL解析-URLComponents
  4. ThinkPHP---thinkphp拓展之空操作
  5. 动态生成java、动态编译、动态加载
  6. LeetCode15——3Sum
  7. 如何同步iframe与嵌入内容的高度
  8. Qt 如何处理密集型耗时的事情
  9. Git安装使用指南
  10. Haoop Mapreduce 中的FileOutputFormat类