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