📜  CoffeeScript-语法(1)

📅  最后修改于: 2023-12-03 14:59:58.505000             🧑  作者: Mango

CoffeeScript 语法介绍

CoffeeScript 是一种编译成 JavaScript 的编程语言,它的语法专注于增强 JavaScript 的表现力和简洁性。CoffeeScript 借鉴了 Ruby、Python 和 Haskell 等语言的部分语法和惯用法,从而使编写 JavaScript 代码变得更加优雅和简洁。

数据类型

CoffeeScript 中的数据类型包括数字、字符串、布尔值、数组和对象等与 JavaScript 类似的数据类型。其中,字符串和数组支持 Ruby 和 Python 风格的快捷方式。

num = 42
str = "hello world"
flag = true

arr = [1, 2, 3]
arr.push 4

obj =
  name: "Alice"
  age: 18
  gender: "female"
函数

CoffeeScript 中的函数定义使用 -> 符号,参数用圆括号括起来,函数体用缩进表示。如果函数只有一个参数,可以省略圆括号。

square = (x) -> x * x

hello = ->
  console.log("Hello, world!")

welcome = (name) ->
  console.log("Welcome, #{name}!")

CoffeeScript 还支持函数默认值和解构赋值。

add = (a=0, b=0) -> a + b

[x, y] = [1, 2]
swap = -> [y, x]
箭头函数

与 JavaScript 中的箭头函数类似,CoffeeScript 中的箭头函数可以用来简化函数定义,并保留 this 指向。箭头函数的定义使用 => 符号。

numbers = [1, 2, 3, 4, 5]
squares = numbers.map (x) => x * x
字符串

CoffeeScript 中的字符串支持 Ruby 和 Python 风格的字符串插值和多行字符串。

name = "Alice"
age = 18
str1 = "My name is #{name}, and I am #{age} years old."
str2 = """
       This is a
       multiple-line string.
       """
对象

CoffeeScript 中的对象字面量支持 Ruby 和 Python 风格的键值对定义和方法定义。

person =
  name: "Alice"
  age: 18
  sayHello: ->
    console.log("Hello, #{this.name}!")
控制流

CoffeeScript 中的条件语句和循环语句与 JavaScript 语法类似,但使用缩进而非花括号表示语句块。

if score >= 90
  console.log("A")
else if score >= 80
  console.log("B")
else if score >= 70
  console.log("C")
else
  console.log("D")

numbers = [1, 2, 3, 4, 5]
for number in numbers
  console.log(number)

count = 0
while count < 10
  console.log(count)
  count++

CoffeeScript 中的类定义使用 class 关键字,支持继承和方法定义。构造函数使用 constructor 方法,而不是 initialize 方法。

class Animal
  constructor: (name) ->
    @name = name
  sayHello: ->
    console.log("Hello, I am #{@name}.")

class Cat extends Animal
  meow: ->
    console.log("Meow!")

cat = new Cat("Kitty")
cat.sayHello() # "Hello, I am Kitty."
cat.meow() # "Meow!"
模块

CoffeeScript 中的模块定义与 JavaScript 语法类似,但使用 export 关键字而非 module.exports。导入模块时使用 import 关键字。

# math.coffee
export square = (x) -> x * x

# main.coffee
import {square} from "math"

console.log(square(3)) # 9

以上就是 CoffeeScript 的一些基本语法介绍,让我们写出更优雅的 JavaScript 代码!