5
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

CoffeeScriptチートシート

Last updated at Posted at 2015-12-06

*自分用メモ。随時更新

##文法

console.log

console.log 'aaa'

###変数とスコープ

myVariable = "test"
console.log myVariable
exports = this
exports.MyVariable = "foo-bar"
console.log exports

###関数

times = (a, b) -> a * b
console.log times(1, 2)
sum = (nums...) ->
  result = 0
  nums.forEach (n) -> result += n
  result
console.log sum(1, 2, 3)

###オブジェクトと配列

object1 = {one: 1, twi: 2}
object2 = one: 1, two: 2
object3 =
  one: 1
  two: 2
console.log object1
console.log object2
console.log object3
array1 = [1, 2, 3]
array2 = [
  1
  2
  3
]
array3 = [1,2,3,]
console.log array1
console.log array2
console.log array3

###条件分岐

if true == true
  console.log "We're ok"
if true != true then console.log "Panic"
if 1 < 0 then console.log "Ok" else console.log "Y2K!"

###文字列の挿入

favorite_color = "Blue. no, yel.."
question = "Bridgekeeper: What... is your favorite color?
            Galahd: #{favorite_color}
            Bridgekeeper: Wrong!
           "
console.log question

###ループ

for name in ["Roger the pickpocket", "Rodrick the robber"]
  console.log "Release #{name}"
for name, i in ["Roger the pickpocket", "Rodrick the robber"]
  console.log "#{i}.Release #{name}"
console.log prisoner for prisoner in ["Roger", "Roderick", "Brian"]
prisoners = ["Roger", "Roderick", "Brian"]
console.log prisoner for prisoner in prisoners when prisoner[0] is "R"
names = sam: 'seaborn', donna: 'moss'
console.log ("#{first} #{last}") for first, last of names
num = 6
minstrel = while num -= 1
  console.log  num + " Brave Sir Robin ran away"

###配列

range = [1..5]
console.log range
firstTwo = ["one", "two", "three"][0..1]
console.log firstTwo
numbers = [0..9]
numbers[3..5] = [-3, -4, -5]
console.log numbers
words = ["rattled", "roudy", "rebbles", "ranks"]
console.log "Stop wagging me" if "ranks" in words

##クラス

###インスタンスプロパティ

class Animal
  price: 5
  sell: "aaa"
animal = new Animal
console.log animal.sell

###静的プロパティ

class Animal
  this.find = (name) ->
    name
console.log Animal.find("Parrot")

###継承

class Animal
  constructor: (@name) ->
  alive: ->
    false
class Parrot extends Animal
  constructor: ->
    super("Parrot")
  dead: ->
    not @alive()
dog = new Animal('Max')
parrot = new Parrot('Nic')
console.log dog.alive
console.log parrot.dead
class Animal
  constructor: (@name) ->
class Parrot extends Animal
Animal::rip = true
parrot = new Parrot("Macaw")
console.log "This parrot is no more" if parrot.rip

##イディオム

###each

arr = [1,2,3,]
for val in arr then console.log val
obj =
  king: 'King'
  queen: 'Queen'
  jack: 'Jack'
for key,val of obj
  console.log val

###map

arr = [1,2,3,]
result = arr.map (i) -> i * 2
result = (item * 2 for item in arr)
console.log result

###select

arr = [1,2,3,4,5,6,]
result = (item for item in arr when item % 2 == 0)
console.log result

###includes

arr = [1,2,3,4,5,6,]
included = 2 in arr
console.log included

###property iteration

object = {one: 1, two: 2}
console.log ("#{key} = #{value}") for key, value of object

###Min/Max

max = (Math.max [1,2,3,4,5,]...)
min = (Math.min [1,2,3,4,5,]...)
console.log max
console.log min

###destructuring assignment

someObject = {a: 'value for a', b: 'value for b'}
{a, b} = someObject
console.log "a is '#{a}', b is '#{b}'"

参考図書: The Little Book on CoffeeScript

5
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?