blog.waterlow.work

Ruby, Rails, js, etc...

【JS】【Coffee】CoffeeScriptはじめました

最近RubyよりJavaScriptのほうがなんかいいです。
viewをしっかり作るなら避けては通れないJSの話です。
そして最近は書くのはCoffeeScriptのみとなってしまいました…。

自分で書けるように少しづつ勉強してきます。

環境は以下のどちらかを使う。

http://coffeescript.org/
http://phantomjs.org/

前者はCoffeeScriptのサイトで、書いたものがすぐ横でJSに変換される。JSが多少読めると「へー」となる。ただ自分が今どこにいるのかよく分からない。(トップレベルなのかどこかのクラスなのか)

後者はコマンドラインでJSを実行するライブラリ。Coffeeにも対応している。ただメインで使うのはブラウザなだけに基本的な文法しか勉強出来ない。あと生成されたJSがどんなかわからない。

message = "Hello World"
if message.length > 1
  alert message

これが

var message;

message = "Hello World";

if (message.length > 1) {
  alert(message);
}

こうなる。RubyPythonの影響を強く受けているらしくとてもシンプル!
個人的には、インデントでブロックを制御するのは多少慣れてきたけれどまだまだ読みにくい。

alert "ok" if name?

あとこれも便利そう。

if (typeof name !== "undefined" && name !== null) {
  alert("ok");
}

RubyのRangeみたいなものから配列を作れたり、連想配列に括弧がいらなかったりと、いろいろ便利そうなのですが如何せん使う場面がない。
現場でもclass定義とか見たことない(これはRailsだからかもしれないけど)。

あと良く見る記号

$ ->
  #メインの処理

これは

jQuery(function() {
  /*メインの処理*/
});

となる。jQueryを書くときの標準的な書き方。らしい!