Home > アーカイブ > ラボメンバー「shimazaki」の投稿一覧

ラボメンバー「shimazaki」の投稿一覧

投稿タイトル javascriptのprototypeプロパティでハマった

どうも。shimazakiです。

javascriptでprototypeプロパティについてアレコレしていたら自分が大きく誤解をしていたことを理解しましたので、ついでに紹介したいと思います

以下の結果がどうなるか、って分かりますか?

    JAVASCRIPT:
    function Hoge(){}
    Hoge.prototype = {
    aList:["123"]
    ,xList:["456"]
    };

    foo = new Hoge();
    foo.aList = ["789"];
    foo.xList.push("789");
    alert(foo.aList);//789
    alert(foo.xList);//456,789

    bar = new Hoge();
    alert(bar.aList);//???
    alert(bar.xList);//???

正解はbar.aListは「123」 bar.bListは「456,789」と表示されます。

何を勘違いしていたか?

Continue reading

投稿タイトル JavaScriptでオブジェクト指向

shimazakiです。

先日社内でJavaScriptでオブジェクト指向、という発表をおこないましたので、その資料を公開します。

JavaScriptを本格的に勉強し始めて約半年ほどになりますが、とりあえずの一段落がついたかな、という感じがします。

投稿タイトル DOM入門

shimazakiです。

先日社内で勉強会をした際にDOM入門、という名目で発表をおこないましたので、その資料を公開します。

DOMは「element」という概念と、ドキュメントツリーと、ブラウザごとの差異が理解できれば後は理解への妨げになるものは無いかなと思います。

投稿タイトル なでしこのススメ

shimazakiです。

先日社内で勉強会を勉強会を行ったのですが、DOM入門ともう一つ、「なでしこのススメ」というタイトルで発表を行い、「日本語プログラミング言語・なでしこ」の社内普及に乗り出してみました。

日常の単純作業やめんどくさい単調作業など、せっかくだから、プログラム作っちゃいませんか、なでしこで。

投稿タイトル Unionを使わない複数集計

shimazakiです。

今日はSQLの話です。

SQLってプログラムと違い、上から順に処理されるわけではなく、まとめて処理されるのでなかなか理解できません。

SQLってこんなことも出来たのか!と感動した時の話をしたいと思います。

例えばこんなテーブルがあったとして(試験の結果テーブルだと思っていただければ)

  • sampleTbl
  • ID point
    A 100
    B 90
    C 88
    D 70
    E 95
    F 80
  • 100点の人数と、90〜99点の人数と、80〜89点の人数と70〜79点一覧を抽出したい場合
  • select 'p100' as pnt,count(*) as cntpoint from sampleTbl where point = 100

    union

    select 'p90' as pnt,count(*) as cntpoint from sampleTbl where point between 90 and 99

    union

    select 'p80' as pnt,count(*) as cntpoint from sampleTbl where point between 80 and 89

    union

    select 'p70' as pnt,count(*) as cntpoint from sampleTbl where point between 70 and 79;

    pnt cntpoint
    p100 1
    p90 3
    p80 1
    p70 1

    というSQLを、

    select

    sum( if( point=100, 1,0)) as p100,

    sum( if( point between 90 and 99 , 1,0 ) ) as p90,

    sum( if( point between 80 and 89 , 1,0 ) ) as p80,

    sum( if( point between 70 and 79 , 1,0 ) ) as p70

    from sampleTbl;

    p100 p90 p80 p70
    1 3 1 0

    と言うSQLに変更します。

    条件に一致する行を1とし、その個数をカウントすることで、結果を一行で取得することができます。

    これが、単一の試験結果であればそれほど利点はないのですが、例えば、今回のテスト結果と前回のテスト結果を表示する画面、というものがあった場合、先述のunion方式では結果データの構成が複雑になってしまいますが、後述の方法であれば、今回の結果行と前回の結果行という取得が可能なので、結果データの構成が分かりやすくなります。

    SQLの理解がまだまだ足りないと思う今日この頃でした。

Home > Archives > ラボメンバー「shimazaki」の投稿一覧

ページ
メタ情報

Page Top