📅  最后修改于: 2023-12-03 14:59:58.505000             🧑  作者: Mango
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 代码!