そうだ!Javascriptを勉強しよう

今思うと仕事の大半がNexawebとか各種RIA製品使ったアプリケーション開発だけだったので、Javascript力が低いことに今更気がついた。
なのでしばらくはJavaScriptを勉強しなおすことにする。
TitaniumMobileとかSenchaとかNodeとかjsx, enchantとか付け焼刃のJavascriptじゃ通用しなさそうだし。

参考書籍

JavaScript: The Good Parts ―「良いパーツ」によるベストプラクティス
随分前に電子書籍で購入したのを忘れていた。良書みたいよ

勉強する環境

普通はHTMLファイル上にスクリプト書いて動作確認すると思うんだけどエディタとブラウザ行き来するの面倒だなと。。。
(コマンドラインからスクリプトを実行したい)
ふと、思い出したのがJVM上で動くJavaScriptインタプリタの「Rhino」(らいのー)を思い出した。
調べてみるとJDK1.6から同包されていて、jrunscriptってコマンドラインで入力するとイケるらしい。
(Mac OSX Lionには最初からJDK入ってます)

対話形式の実行

$ jrunscript
js>println("Hello. Rhino");
Hello.Rhino

Javascript自体に標準出力の機能は無いのでJavaのSystem.out.printlnを使います。Rhino上だとprintlnに短縮可能。
基本的にJavaScriptから全てのJavaAPI(パス通せばサードパーティも)が使えるわけですが、今回はJavascriptの勉強なので使いません。

スクリプトを食わせる

$ jrunscript hello.js
Hello.Rhino

これができるならVimからQuickRun実行もできるんじゃねと思って試してみたら何もしなくてもできた(笑)
これでエディタから離れずにJavaScriptのお勉強ができますね。

追記

jslint.vim入れてみたらちゃんと動かなかったのでnode.jsインストールして解決しました。

$ brew install node

構文チェックするvimスクリプト

" Javascript Lint
autocmd FileType javascript :nmap ,l :call JavaScriptLint()<CR>
function JavaScriptLint()
  autocmd BufLeave     &lt;buffer&gt; call jslint#clear()  
  autocmd BufWritePost &lt;buffer&gt; call jslint#check()  
  autocmd CursorMoved  &lt;buffer&gt; call jslint#message()
endfunction