Hatena::ブログ(Diary)

hogehoge @teramako RSSフィード

 

2012-02-11

Firefox 13.0a1 (Nightly) で for-of ステートメントが実装されました

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"

対象となるオブジェクト

配列の様なオブジェクトと書いたとおり、純粋な配列以外にも使えます。

  • Argumentsオブジェクト
  • HTMLCollectionオブジェクト
  • NodeListオブジェクト

あたりで使えます。

逆に対象外のオブジェクトの場合は、以下の様に例外を出します。

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 ( ; ; )を使っていたのに比べれば多少楽な書き方が可能になるわけです。

2012-01-30

Nightly(Firefox 12.0a1) の about:newtab で表示するアイテム数を増やす

aboutURLに対してスクリプトを実行できる Scriptish でやってみた。

about:config 等からbrowser.newtabpage.enabledextensions.scriptish.enabledSchemes.abouttrueにしておく。

3分クッキングみたいな気分で書いたので、ハードコーディングされていたりでコードはアレ(特に、CSSの変更周りが酷い)

var rows = 4,
    columns = 5;

辺りを弄ればアイテム数を制御できる。

メモ