タグ

ブックマーク / amachang.hatenablog.com (8)

  • for 文を setTimeout に変換する - IT戦記

    for 文で 100 項目とか 1000 項目とかあるテストケースを処理するとブラウザが固まる。 こんなダイアログが表示されます。 ということで for 文を setTimeout や setInterval に変換する事で定期的にブラウザに処理を戻すことができる。 // ここでは console.log のところでログを取ってますが // 通常は処理が入ります。 for (var i = 0; i < 3; i ++) { console.log('a' + i); } /* * 結果 * a0 * a1 * a2 */ これをまず while 文に変換 var i = 0; while (true) { if (!(i < 3)) break; console.log('a' + i); i ++; } /* * 結果 * a0 * a1 * a2 */ で、 setTimeout に

    for 文を setTimeout に変換する - IT戦記
  • Y コンビネータって何? - IT戦記

    このエントリの 親友へ。ブログを書こう。 - IT戦記 y がブログを始めたみたいなので、読んでみた。 で、最新のエントリを読んでみたら、 Y コンビネータというものについて書いてあったので、 Y Combinatorが凄すぎる! - yuji1982の日記 Y コンビネータって何ってところから、自分でもいろいろ考えてみた。 結局なんなのかさっぱり分からなかったんですが、自分が考えたことをまとめておく まず、フィボナッチ数を求める fib を定義する var fib = function(n){ return (n <= 2) ? 1 : (arguments.callee(n-1) + arguments.callee(n-2)); }; fib(10); おお! JS すげー!名前は n しか使ってねーよ! めでたし、めでたし。。。。じゃなくて! JS が素晴らし過ぎて話が終わってしま

    Y コンビネータって何? - IT戦記
  • AS3 で eval する - IT戦記

    AS3 は eval が出来ないので 自分用の eval 関数を作っておくと便利です。 というわけで eval を作る // eval.as package { import flash.external.ExternalInterface; public function eval(script:String):* { return ExternalInterface.call('eval', script) } } JavaScript の eval 呼ぶだけだけど(笑)。 でも、この AS ファイルを source-path に置いておくだけ(import不要)で、気軽に eval 出来てめちゃめちゃ便利! このネタ、ここに書いてみたけど 誰かが既にやってそうだなあ。。。。 誰かやってたら、「それ、もうやったよ!」って教えてください><

    AS3 で eval する - IT戦記
    dhrname
    dhrname 2011/02/23
    JavaScriptのevalをactionscriptで実装するコード
  • DOM Range のテストケースを書きました - IT戦記

    W3C で DOM Range という便利なオブジェクトが勧告されています。 http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html DOM Range って何? DOM Range とは、 DOM ツリーの任意の範囲を表すための仕様です。 DOM Range を使うと、「ここからここまでのノードを全部削除」とか「ここからここまでの要素をここに移動」というような操作が簡単にできます。 もちろん、ノードの途中も選択できます。 また、 DOM Range はコンテンツをマウスなどで選択したときの選択範囲を表す Selection オブジェクトからも使われています。 (ちなみに Selection オブジェクトの仕様は HTML5 で定義されています。 http://www.whatwg.org/specs/web-apps/cu

    DOM Range のテストケースを書きました - IT戦記
    dhrname
    dhrname 2010/05/22
  • getComputedStyle について調べてたら深みにハマったのでメモ - IT戦記

    getComputedStyle とは!? ある要素にどんなスタイルが当たっているかを計算してくれる。便利な関数。 使いかたはめっちゃ簡単! var style = getComputedStyle(element, ''); alert(style.fontSize); // 14px alert(style.color); // rgb(0, 0, 0) ちなみに第二引数は疑似要素の style を取りたい場合に使います。通常は空文字列でいい。 でも、 getComputedStyle はこのままでは IE, Safari では動かない。 Safari では window(グローバル領域) に getComputedStyle は定義されてなくて、 document.defaultView だけに getComputedStyle が定義されている。 ちなみに、 Firefox, Op

    getComputedStyle について調べてたら深みにハマったのでメモ - IT戦記
    dhrname
    dhrname 2009/11/11
  • IE6 と IE7 と IE8 を同じマシンで共存させる方法 - IT戦記

    追記: 現在は IETester というソフトウェアを使うのがベストだと思います>< 結論から言うと Jeremy Smith's blog: Success! IE 6, 7, and 8 Running on Same Machine (Plus 5.5 and 5.01) に書いてある通りで IE8 をインストール http://tredosoft.com/IE7_standalone の IE7 Standalone をインストール http://tredosoft.com/Multiple_IE の Multiple IE をインストール の順で、共存させることができました。 IE8 を入れるのを戸惑っている人は 入れてみたらいかがでしょうか。 ちなみに 以下のサイトからダウンロードできる Standalone IE6 は IE8 と共存できませんでした。 browsers.ev

    IE6 と IE7 と IE8 を同じマシンで共存させる方法 - IT戦記
    dhrname
    dhrname 2009/03/24
  • WebKit の CSS の字句解析部分を JavaScript に移植しました - IT戦記

    これを JS に移植しました。 http://svn.webkit.org/repository/webkit/trunk/WebCore/css/tokenizer.flex ポイント それなりに汎用的な Flex みたいなものを作ったので、その部分は CSS 以外にも使えると思います。 あと、定義を文字列で書かずに正規表現オブジェクトで書くのでバックスラッシュをエスケープせずに書けます。ですので、ほとんどの箇所は WebKit の tokenizer の定義をコピーするだけで済みました。 その辺のアイデアは JavaScript で構文解析: Days on the Moon を参考にしました あと http://svn.coderepos.org/share/lang/actionscript/ascss/src/css/CSSLexer.as id:gyuque さんの ASCSS

    WebKit の CSS の字句解析部分を JavaScript に移植しました - IT戦記
    dhrname
    dhrname 2009/01/21
  • (function(){})() と function(){}() - IT戦記

    自分用メモ // JavaScript でクロージャを書くときこう書く事が多い (function() {})() // 何故なら // function() {}() // と書くと // function() {} が式ではなく、文として解釈されてしまうからだ。 // 文として解釈されないためには、文の途中(最初以外)に function と書いてやる必要がある // なので、まず開きカッコを書いてやる。 ( // の後に function() {} // と書いてやると function は式になる ) // 正確には、カッコの対は The Grouping Operator という演算子である。 // カッコ以外にも var a = // のように代入演算子のあとでもいい function() {} // つまり、以下のような記述も可能である。 var b = function()

    (function(){})() と function(){}() - IT戦記
    dhrname
    dhrname 2008/12/06
  • 1