バッドノウハウ x 3

id="foo" の要素にアクセス

普通はこう

<script id="foo">
alert(document.getElementById("foo").txt);
</script>

document.getElementById は省略できる

<script id="foo">
alert(foo.txt);
</script>

27byte減 ショートコーダーならスルーしがたい小悪魔的誘惑

IEを判別(IE="\v"=="v";) (13byte)

IE5〜IE8でtrueになるのはJScript5.xが垂直タブ(\v)を無視した比較を行うから だがJScript8.0ではfalseになる IE9で通用する保障が無い
他には

  • IE=!!top.execScript; // ダメ Chrome でも true  (20 byte)
  • IE=!!top.ScriptEngine; // 今考えた  (22 byte)
  • IE=!!document.uniqueID; // uupaa.js 式  (23 byte)

条件コンパイルが許せるならこんな手もあるが圧縮ツールの選択肢が減る

  • IE//@cc_on=1;  (13 byte)
  • IE=/*@cc_on!@*/!1;  (18 byte)

ネタ元(ajaxian)

副作用のある代入

未定義を知るC/C++ モンキーはこんなコードを生産しない

var i = 0;
while (i < 10) this[i++] = this[i];

Google Code 全体を this[i++] = this[i] で検索した
http://www.google.com/codesearch?hl=ja&lr=&q=this\[i\%2B\%2B\]\s*%3D\s*this\[i\]+&sbtn=%E6%A4%9C%E7%B4%A2
2つのJavaScriptプロジェクトがヒット