Introduction to CoffeeScript
CoffeeScript is a little language that compiles into JavaScript. It is an attempt to expose the good parts of JavaScript in a simple way. CoffeeScript syntax is inspired by Ruby, Python, and Haskell, which encourages more readable and maintainable code.
Getting Started with CoffeeScript
# Simple Hello World in CoffeeScript console.log 'Hello, CoffeeScript!'
Variables and Functions
# Variables name = "CoffeeScript" age = 10 # Functions greet = (name) -> "Hello, #{name}!" console.log greet(name)
Control Structures
# If-Else score = 75 result = if score > 60 then "Pass" else "Fail" console.log result # Looping for num in [1..5] console.log num
Arrays and Objects
# Arrays fruits = ["Apple", "Banana", "Cherry"] for fruit in fruits console.log fruit # Objects person = name: "John Doe" age: 30 greet: -> "Hello, my name is #{ @name }." console.log person.greet()
Classes and Inheritance
# Class Definition class Animal constructor: (@name) -> speak: -> console.log "#{ @name } makes a noise." class Dog extends Animal speak: -> console.log "#{ @name } barks." tom = new Dog "Tommy" tom.speak()
API Example: Building a Simple To-Do App
Let’s create a simple To-Do Application leveraging some of the CoffeeScript features described above.
class Task constructor: (@title) -> @done = false complete: -> @done = true class TodoList constructor: -> @tasks = [] addTask: (task) -> @tasks.push task completeTask: (index) -> @tasks[index].complete() # Create a new Todo List myList = new TodoList() # Add Tasks task1 = new Task "Learn CoffeeScript" task2 = new Task "Build a To-Do App" myList.addTask task1 myList.addTask task2 # Complete the first task myList.completeTask 0 # Display tasks for task in myList.tasks console.log "#{ task.title }: #{ if task.done then 'Done' else 'Pending' }"
This simple To-Do application showcases the creation of classes, instantiation of objects, and manipulation of arrays in CoffeeScript.
Hash: 3b5db8d9b792ed63716852b74d88aec06a895f2cf7042501ecc3a39466098453