CoffeeScript基础

1.CoffeeScript 编译器本身是 CoffeeScript 写的, 使用了 Jison parser generator. 命令行版本的 coffee 是一个实用的 Node.js 工具. 不过编译器并不依赖 Node, 而是能运行于任何 JavaScript 执行环境, 比如说在浏览器里(看上边的"试一试 CoffeeScript").


2.安装CoffeeScript之前需要安装node.js和npm

3.CoffeeScript 使用显式的空白来区分代码块. 你不需要使用分号 ; 来关闭表达式, 在一行的结尾换行就可以了(尽管分号依然可以用来把多行的表达式简写到一行里). 不需要再用花括号来{ } 包裹代码快, 在 函数, if 表达式, switch, 和 try/catch 当中使用缩进.

4.函数:

square=(x)->x*x      (CoffeeScript的写法)

相当于下面的 代码(JS的写法)

square=function(x){
  return x*x;
}

5.对象可以用缩进替代花括号来声明。
6.If, else,  unless和条件运算符:
CoffeeScript 里不存在直白的三元表达式. — 你只要在一行内使用普通的  if  语句.

7.为了更好的可读性,until关键字等同于while not, loop关键字 等同于while true
8.CoffeeScript 提供了一个 do 关键字, 用来直接调用跟在后边的函数, 并且传递需要的参数.
9.有一些 JavaScript 语句是不能编译到表达式的对应的语义的, 比如 break, continue  return. 如果你的代码当中用到了它们, CoffeeScript 是步骤尝试去进行转换的.

10.操作符:

由于操作符 == 常常带来不准确的约束, 不容易达到效果, 而且跟其他语言当中意思不一致, CoffeeScript 会把 == 编译为 ===, 把 != 变异为 !==. 此外, is 编译我 ===, 而 isnt 编译为 !==.

not 可以作为 ! 的 alias 使用.

逻辑操作方面, and 编译为 &&, 而 or 编译为 ||.

11.

 on  yes  true 是一样的, 而 off  no 是布尔值 false.

unless 可以认为是 if 相反的版本.

this.property 简短的写法可以用 @property.

可以用 in 判断数据在数组中是否出现, 而 of 可以探测 JavaScript 对象的属性是否存在.

为了简化数学表达式, ** 可以用来表示乘方, // 表示整除, %% 提供数学的模运算


完整的列表:

完整的列表:

CoffeeScript JavaScript
is ===
isnt !==
not !
and &&
or ||
true, yes, on true
false, no, off false
@, this this
of in
in no JS equivalent
a ** b Math.pow(a, b)
a // b Math.floor(a / b)
a %% b (a % b + b) % b



你可能感兴趣的:(CoffeeScript基础)