hagino3000's blog

平成アーカイブス (更新停止)

みんなもっと JavaScript Shell 使おうぜ!!

今日の若手IT勉強会でちょっとしたデモをやるのに使ったのですが、そんなに知名度が高くなかったみたいなので紹介。簡単に説明するとブラウザ上で動作する対話式JavaScript実行環境です。Firebugスクリプトコンソールと同等の機能ですが、シェルっぽい動作が私は好きなので使っています。フォントも大きくできるので、発表か何かでデモを見せる時にも活用できます。


Firefoxの場合はブックマークレット版を使えば、開いているページのコンテキスト上で任意のコードが実行できます。

機能(一部)

  • JavaScriptの実行(入力してEnterキー)。複数行入力する場合はShift+Enterで改行
  • TABキーでプロパティ名の補完
  • ↑↓キーで実行履歴の参照
  • ans で前回の評価結果の参照
  • print で内容の表示。例:for(var i=0; i<10; i++){print(i*i)}
  • props でオブジェクトのプロパティの表示*1。例:props(window.document.documentElement)
  • load で外部スクリプトのロード

実行例

twitterAPIのテスト
>document.location
http://twitter.com/

>jQuery // jQueryの存在確認
function (D, E) {
  return new (n.fn.init)(D, E); 
}

>$
function (D, E) {
  return new (n.fn.init)(D, E); 
}

>$ == jQuery // $がjQueryか確認
true

>$.getJSON("http://twitter.com/statuses/friends_timeline.json",
>  function(data){
>    $.each(data, function(i, status){
>      print(status.id);
>      print(status.user.name);
>      print(status.user.screen_name);
>      print(status.text);
>      print(status.created_at);
>      print("-----------------------------");
>      
>    });
>  }
>);

1754743256
圧縮新聞
asshuku
さいたま市長選は10日午後2時から札幌市東区北19条東22の5のカドキホールで。
Sun May 10 14:15:02 +0000 2009
-----------------------------
//...以下略
//取得した件数だけtwitterAPIの取得結果が表示される
mixi上でjQueryを使ってみる
>document.location
http://mixi.jp/home.pl

>jQuery
ReferenceError on line 1: jQuery is not defined

>load('http://jqueryjs.googlecode.com/files/jquery-1.3.2.min.js')
Loading http://jqueryjs.googlecode.com/files/jquery-1.3.2.min.js...

>jQuery
function (E, F) { 
  return new (o.fn.init)(E, F); 
}

>jQuery.browser.mozilla
true
飲み代のワリカン
>Math.floor(24000/7)
3428

>confirm('一人3500円でいい??')
// OKならtrue, キャンセルならfalse

他にも

参考書に載っているちょっとしたコードを実行したい時や、Dateオブジェクトの使い方どうだっけ?という時にも役に立ちます。ブラウザ間の動作の違いなんかもすぐにわかるので便利。是非使ってみてください。

*1:Methods, Fields, Methods of prototype, Fields of prototype をを分けて表示してくれる