2011/03/05

Sapporo.js-2011.03.05の感想と本読み、LTのメモ

感想

  • 読み合わせのある勉強会は初めてだった
    • 読んで、その部分のコードを試してみんなで疑問を試したりして進んでいった
    • Perlでやるとしたら、どの本がいいのかな
    • さらっとやるのかと思ったら、意外と深いところまで突っ込んでた
  • 札幌市民ホールの会議室は綺麗でススキノにも近い
    • でも18, 24人のサイズの後は74人とかになる

以下、作業中のメモ

本読み

  • fibonacciのメモ化
  • Object.createprototype, constructorの挙動

    Object.create = function(o) {
        // 無名関数でもいいけど、名前を付けると
        // stacktraceで出ることもある
        var F = function Child() {};
        F.prototype = o;
        return new F();
    }
    
  • 関数と変数で同じ名前を使用したら、関数定義が先に解析されるので変数が上書きする

    // OK
    Object.create function(o) {
        alert(F);
        F.prototype = o;
        function F() {};
        return new F();
    }
     
     
    // NG
    Object.create function(o) {
        alert(F);
        F.prototype = o;
        var F = function F() {};
        return new F();
    }
    
  • __proto__を使うとnewを使わないでもいける。但しもじらだけっぽい

    var c = {}, p = {};
    p.__proto__ = { hoge: 'xxx' };
    c.__proto__ = p.__proto__;
    alert(c.hoge || 'ooo'); // mozilla => xxx, IE => ooo
    

LT @bad_at_mathさん

JavaScriptの成り立ち

  • Nescapeが1995
  • Scheme, Selfからの影響
  • ECMA(ヨーロッパ)で標準化
    • ECMA 262
    • ISOとかも
  • ECMA 262 - 3rd (1999年頃)
  • ECMA 262 - 4rd (2005年頃)
    • Class, Interface
    • MS/AdobeとYahoo/Mozillaが対立
    • ぐだぐだ
  • ECMA 262 - 5th (2009年頃)
  • ECMAの特徴
    • 小さい
  • ブラウザのJavaScript
    • CORE(ECMA)
      • SpiderMonkey
      • Rhino
      • V8
      • Carakan
      • Chakra
      • Appleのなんか
      • 第2次ブラウザ戦争
    • DOM
    • E4X
    • イベント系

Node.js

  • 以前からいろいろあったけど、使われてない
  • Multi Thread
    • IOが実行時間の中で支配的
    • context switchも数が多いとすごい
    • メモリいっぱい
  • Single Thread + Non Blocking IOか
    • 省メモリ
    • Node.jsはこっち

0 件のコメント:

コメントを投稿