CoffeeScript - 语法
在上一章中,我们了解了如何安装 CoffeeScript。 在本章中,让我们检查一下 CoffeeScript 的语法。
与 JavaScript 的语法相比,CoffeeScript 的语法更加优雅。
CoffeeScript 语句
与 C、C+++ 和 Java 等许多其他编程语言不同,CoffeeScript 中的语句不以分号 (;) 结尾。 取而代之的是,每一行都被 CoffeeScript 编译器视为一个单独的语句。
示例
这是 CoffeeScript 语句的示例。
name = "Javed" age = 26
同理,我们可以在一行中写两条语句,用分号分隔它们,如下所示。
name = "Javed";age = 26
CoffeeScript 变量(无 var 关键字)
在 JavaScript 中,我们在创建变量之前使用 var 关键字声明一个变量,如下所示。
var name = "Javed" var age = 20
在 CoffeeScript 中创建变量时,无需使用 var 关键字声明它们。 我们可以直接通过给它赋值来创建一个变量,如下所示。
name = "Javed" age = 20
没有括号
一般情况下,我们在声明函数、调用函数时都会使用括号,同时也会将代码块分隔开来避免歧义。 在 CoffeeScript 中,不需要使用括号,在创建函数时,我们使用箭头标记 (->) 代替括号,如下所示。
myfunction = -> alert "Hello"
不过,在某些情况下我们还是要使用括号。 在调用不带参数的函数时,我们将使用括号。 例如,如果我们在 CoffeeScript 中有一个名为 my_function 的函数,那么我们必须按如下所示调用它。
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 |