CoffeeScriptを書いてみたよ その4
今回で最後、CoffeeScriptの練習。CoffeeScript書きすぎて、JavaScriptが書けなくなってきたのはいいことなのか、悪いことなのか……
bind
# bind? ( => ) # amachang先生の http://thinkit.co.jp/free/article/0702/15/4/ を参考にしたけど # 微妙にわかってないような…… class aaa constructor: (@name) -> echo: -> # console.log @name return class bbb constructor: (@name) -> echo: => # console.log @name return setTimeout new aaa('aaa').echo, 10 # '' setTimeout new bbb('bbb').echo, 10 # 'bbb'
直接JavaScriptを書く/switch文/try-catch-finally
# 直接JavaScriptを記述する ( `` ) # インラインアセンブリなんて言葉がふと頭をよぎった val = `function() { return '345' }` console.log val() # 345 # switch/when/else # switch-case-defaultと同じ type_value = yes switch typeof type_value when 'string' then console.log 'str' when 'number' then console.log 'int?' when 'boolean' then console.log 'bool' # 'bool' else console.log 'unknown' # try-catch-finally # catchじゃなくてexceptだったらなー…… try xhr = new XMLHttpRequest() catch e xhr = new ActiveXObject('MSXML') finally xhr = null
いろいろ
# Chained Comparisons # 直感的に書ける(?)比較 val = 5 console.log val if 0 < val < 10 # 5 # 既に使っていた気がするけど # Rubyみたいに文字列中に文を書く console.log "1 + 5 = #{1 + 5}" # '1 + 5 = 6' # 複数行文字列 multiline_str = 'aaa bbb ccc ddd eee fff ggg hhh iii jjj kkk lll' console.log multiline_str # aaa bbb ccc ddd eee fff ggg hhh iii jjj kkk lll # ヒアドキュメント html = ''' <p> paragraph <p> ''' console.log html # <p> # paragraph # </p> # 複数行コメント ### コメントだよ 複数行だよ ### # コメントの付加できる正規表現 # Rubyの / /x かな? regexp = /// ^ # 先頭に [0-9]+ # 0..9が1文字以上で : # コロンがあり [a-z]{4} # a..zが4文字続く文字列 /// console.log regexp # /^[0-9]+:[a-z]{4}/
公式サイトの写経も終わったし、自作のライブラリをCoffeeScriptで書きなおしたりとかしてレベルアップを図ろうかな。
JavaScriptは好きだけど、CoffeeScriptに慣れると確かにJavaScriptは書きたくなくなる。