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

广告