2007/03/04

Javascript強力すぎてワロタ

最近ずっとjavascriptばかり書いていた。
やたら強力な言語なんだけど、言語構造が全然わからなくてくやしかったのと、今後もしばらく書くことになりそうなので、ちゃんと勉強してみることにしてみた。

http://0xcc.net/blog/archives/000159.html

これの第五版。まだ翻訳はされていない?

以下面白かった話。
  • a=2
    b=1
    というセミコロンなしでもラインブレークがあればおk。
    このため、
    return
    true
    は違う意味(return値なし)になる。恐ろしすぎる。
  • a = Boolean(false);
    a = new Boolean(false); //newなしだと普通に動作するらしい
    if (a) {
      alert(true);
    }
    Boolean Objectは評価値が真になるらしい
  • 引数付のコールバックをするために試したコードがあって、うまくいかなくて教えてもらったコードがあったんだけど、
    function fgen(val){
      return function(){print(val)}
    }
    function test(){
      var i = 0;
      var a = Array();
      var b = Array();
      for(var j=0;j<4;j++){
        a[j]=function(){print(i)}
        b[j]=fgen(i);
        i++;
      }
      for(var j=0;j<4;j++){
        invoke(a[j])
        invoke(b[j])
      }
    }

1 件のコメント:

kudzu さんのコメント...

こちらで試してみましたが、その通りですた。
new無しでBoolean()だけだとprimitiveのほうになるんですね。あばばばばばー