JavaScript
CoffeeScript
Rails

感覚でCoffeeScriptを書いていてハマったこと インデントに注意!!!

背景

Railsでwebアプリを作っていてCoffeeScriptを使う必要が出てきた。
全くドキュメントを読まずにcoffeeを感覚で書いていた時に、基本的な知識がないために落とし穴にハマり、抜け出すのに1日を無駄にしてしまった。
そこで、この記事では普通のJavascriptとCoffeeScriptの引っ掛かりやすい違いをまとめた。(あまりに基礎的な話です。)

インデントに注意!!!

CoffeeScriptではインデントでブロックを表現する!!!(基礎の基礎の基礎です)
Javascriptやrubyなどのほとんどの言語ではインデントはコードを見やすくするためのものであり、めちゃくちゃにインデントしても(または全くしなくても)問題ない。
しかし、CoffeeScriptではブロックをインデント表現するため、めちゃくちゃに書くと動かない...(泣)

このことを知らず、1日を無駄にした...

しかし、この仕組みによって、連想配列などが以下の例のように楽に書けるというメリットもある。

sample.coffee
menu =
    "curry":
        "price": 350
        "cal": 500
    "tonkatsu":
        "sprice": 600
        "cal": 800

これをJavascriptで書くと、

sample.js
var h;

menu = {
    "curry": {
        "sprice": 600,
        "cal": 800
    },
    "tonkatsu": {
        "sprice": 600,
        "cal": 800
    }
};

CoffeeScriptならカンマ(,)も必要ない!!!

CoffeeScriptの便利なところ

上記のような連想配列が簡単に書けること以下にも便利な点がたくさんあるが、その中でも、複数行文字列のクオテーションやヒアドキュメントのクオテーションが簡単になった点が特に便利だと感じた。

CoffeeScriptでは複数行文字列以下のように普通に簡単に書ける!!!

"Hello,
World"

↓

Hello, World

また、改行付きの文字列も以下のように"""で囲めば改行コードなしで書ける!!!

"""Dear Coffeescript
you are very convenient 
programming language!!!"""

↓

Dear Coffeescript
you are very convenient 
programming language!!! 

感想

ドキュメントを読むことの大切さを痛感しました。
railsなどを使っていると、基礎的なこと(javascriptやSQL文、データベースについてなど)を理解していなくても、全然アプリを作れてしまうが、少しでも凝ったことをしようと基礎的な知識が重要になってくることを痛感した。
coffeescriptを使っていれば、自然とほかの言語を使うときにも、インデントのきれいなコードを書けるようになることに期待!