Kanasan.JS JavaScript第5版読書会#2に参加してきました

今回は45人という非常に大きな規模のイベントになってて驚きました。
やっぱりid:amachang効果でしょうか。
ゲストに会えたりするのも醍醐味の一つですよね。

午前の部

今回も相変わらずレベルは高かったです。
特に午前中のLightning TalkではJavaScript以外の研究の成果など
多彩な話題に加えその知識の広さに圧倒されましたね。


個人的にHaskell興味津々でした。
ujihisaさんの徹底的な省エネプログラミング思想が楽しい。
ただスピード感について行くのがやっとだったんですが。。。

午後の部

午後は前回の続きでP.81の6章『文』から読書会が始まりました。
綺麗なまとめは他の方にお譲りするとして、
個人的に気になったとこをメモ程度に。

  • 文と式の違い

式を評価すると値を返すが文の宣言は値をもたない。
if文の条件式の括弧内に書けるものが式。
書けないものが文。

  • switchのcaseラベルの値は実行時に決定される。

評価対象とラベルの値を厳密比較(===)で比較して真となるcaseが実行される。
実行後はswitch文を抜ける。
defaultラベルは何番目に書くこともできる。
その場合でも一致するcaseが無い場合のみ実行される。
二つ以上のcaseが一致する場合は上が優先となる。
以下のようなケースの場合「50 + 50」と表示される。

var n = 100;
switch(n) {
 case 1:
    break;
 default:
   alert('default');
   break;
 case 50 + 50:
   alert('50 + 50');
   break;
 case 100:
   alert('100');
   break;
}
  • for文のinitializer

基本的には式しかかけないがvar文のみ例外で書く事ができる。

  • for inによるプロパティ名の列挙
var obj = {x:1, y:2, z:3};
var ary = [];
var i = 0;
for(ary[i++] in obj);
ary //-> ["x", "y", "z"];

ブロックスコープが無い為、このような事ができるものと思われる。

  • for文などの処理に空文を置く事によるバグの対処法

空文を書かないのが一番。
でもライブラリではよく書いてあるの見かけるんだよね。。。


懇親会

今回は初めて飲み会前提での懇親会がありました。
酒のおかげもあって全体的に非常に和やかなムードなのに加え、
私自身、今回で4回目の参加となる為、参加者の顔とスキルがだいぶ一致してきました。
おかげで話がし易くなってきたのか、
たくさんの人と技術の事を中心に話ができて楽しめました。


懇親会の最中にid:amachangさんとnanto_viさんのトークがあったので
聞き耳をたてにいったんですが、その時二人に質問をぶつけてみました。


『今後のJavaScriptというかWEBのフロントサイドでの技術の方向性について』


二人とも基本的には現在の技術は過渡期であるので、
あらゆる事を試すことは良いが、ある程度の収束は必要と考えているよう。
Airなどの可能性はありだがそれによりAdobeのみが、
力を持つような体制は望ましくないと言ってました。


特にnanto_viさんはWEBの基本姿勢としては誰でも情報へ同様のアクセス方法を
提供できることが大事なので過去の(枯れた)技術を使った現在のアプローチは必要と言ってました。
(もちろん今後のモバイル端末によるアクセス手段も含めて)と自分は受け取りました。

最後に

みなさん本当にお疲れ様でした。
またKanasan、スタッフの皆さん共々ありがとうございました。
また次回もよろしくお願いします。