CoffeeScript 语法
在上一章中,我们已经看到了如何安装 CoffeeScript。在本章中,让我们检查一下 CoffeeScript 的语法。
CoffeeScript 的语法比 JavaScript 的语法更优雅。它避免了花括号、分号和可变减速等麻烦的功能。
CoffeeScript 语句
与 C、C++ 和 Java 等许多其他编程语言不同,CoffeeScript 中的语句不以分号 (;) 结尾。取而代之的是,CoffeeScript 编译器将每一个新行都视为一个单独的语句。
示例
这是一个 CoffeeScript 语句的例子。
同样,我们可以在一行中编写两个语句,使用分号分隔它们,如下所示。
CoffeeScript 变量(无 var 关键字)
在 JavaScript 中,我们在创建变量之前使用
var 关键字声明一个变量,如下所示。
var name = "Javed"
var age = 20
在 CoffeeScript 中创建变量时,不需要使用
var 关键字来声明它们。我们可以直接创建一个变量,只需为其赋值,如下所示。
无括号
一般情况下,我们在声明函数、调用函数时使用括号,同时也将代码块分开以避免歧义。在 CoffeeScript 中,不需要使用括号,在创建函数时,我们使用箭头标记 (
->) 代替括号,如下所示。
myfunction =-> alert "Hello"
不过,在某些情况下我们必须使用括号。在调用不带参数的函数时,我们将使用括号。例如,如果我们在 CoffeeScript 中有一个名为 my_function 的函数,那么我们必须如下调用它。
同样的,我们也可以用括号来分隔歧义的代码。如果你观察下面的例子,没有大括号,结果是 2233,有大括号,结果是 45、
alert "The result is "+(22+33)
没有花括号
在 JavaScript 中,对于函数、循环和条件语句等块代码,我们使用花括号。在 CoffeeScript 中,不需要使用花括号。相反,我们必须在正文中保持适当的缩进(空格)。这是受 Python 语言启发的特性。
以下是 CoffeeScript 中的函数示例。在这里你可以观察到,我们没有使用花括号,而是使用了三个空格作为缩进来分隔函数体。
myfunction =->
name = "John"
alert "Hello"+name
CoffeeScript 评论
在任何编程语言中,我们都使用注释来描述我们所编写的代码。这些评论不被视为程序的一部分。 CoffeeScript 中的注释类似于 Ruby 语言的注释。 CoffeeScript 提供了两种类型的注释,如下所示-
单行注释
每当我们想在 CoffeeScript 中注释一行时,我们只需要在它之前放置一个井号标签,如下所示。
# this is the single line comment in CoffeeScript
CoffeeScript 编译器将哈希标记 (
#) 后面的每一行都视为注释,它会编译给定文件中除注释之外的其余代码。
多行注释
每当我们想在 CoffeeScript 中注释多行(多行)时,我们可以通过将这些行包装在一对三重哈希标签中来实现,如下所示。
###
These are the multi line comments in CoffeeScript
We can write as many number of lines as we want
within the pair of triple hash tags.
###
CoffeeScript 保留关键字
CoffeeScript 中所有保留字的列表如下表所示。它们不能用作 CoffeeScript 变量、函数、方法、循环标签或任何对象名称。
case default function var void with const let enum export import native __hasProp __extends __slice __bind __indexOf implements |
else interface package private protected public static yield true false null this new delete typeof in arguments eval |
instanceof return throw break continue debugger if else switch for while do try catch finally class extends super |
undefined then unless until loop of by when and or is isnt not yes no on off |