Firefox 13.0a1 (Nightly 2012-02-09) あたりから、ES.next の新たな構文である、for-ofステートメントが追加されました。
この構文は、配列の様なオブジェクトに対して使えるもので、for-in 構文が key を取ってくるのに対して、for-of は value を得られるものとなります。
for (var item of ["a","b","c"]){ console.log(item); } // "a" // "b" // "c"
配列の様なオブジェクトと書いたとおり、純粋な配列以外にも使えます。
あたりで使えます。
逆に対象外のオブジェクトの場合は、以下の様に例外を出します。
var obj = { a: "A" }; for (var value of obj) { } // TypeError: obj is not iterable
for (var elm of document.body.childNodes) { // ... } for (var elm of document.querySelectorAll("div")) { // ... } for (var elm of document.getElementsByTagName("div")) { // ... } function foo () { for (var arg of aruments) { // ... } }
今まで、for ( ; ; )を使っていたのに比べれば多少楽な書き方が可能になるわけです。
- "
text/javascript;e4x=1"- JavaScript with ECMAScript for XML. [ECMA357]
aboutURLに対してスクリプトを実行できる Scriptish でやってみた。
about:config 等からbrowser.newtabpage.enabledとextensions.scriptish.enabledSchemes.aboutをtrueにしておく。

3分クッキングみたいな気分で書いたので、ハードコーディングされていたりでコードはアレ(特に、CSSの変更周りが酷い)
var rows = 4,
columns = 5;
辺りを弄ればアイテム数を制御できる。
browser.newtab.urlの値は、一度参照されたら確定してしまう。途中で変更不可なのはいかがなものか。後でBugzilla報告