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

廣告