June 13, 2006

JavaScript1.6

Firefox1.5 からJavaScript1.6がサポートされています。
他のブラウザーでのサポートについては?ですが・・・、とりあえず New in JavaScript 1.6 - MDC で紹介されているものと他にも追加があったのでメモ。
Firefox1.5 以降なら問題ないらしいです。Firefox2.0でしかためしてないですが・・・。
ホームページなどで使用するには、他のブラウザーのことがあるので使用できませんが、拡張で使用するには問題ないでしょう。いくつか便利なものもあります。

E4X
XML 文書を操作することができるそうです。拡張では XMLHttpRequest を使用して、ネットワークから取得した情報を利用するような拡張以外では必要ないかもしれません。
Array (配列)オブジェクト
いくつかメソッドが追加されています。大雑把に言うと位置を返すメソッドと、反復処理をするメソッドに分けられてます。

位置を返すメソッド

  • indexOf(searchElement[, fromIndex])
    検索を開始してから最初にマッチした searchElement の位置を返します。
    fromIndex は前からの検索開始位置で、省略可能です。デフォルトは0。
  • lastIndexOf(searchElement[, fromIndex])
    こっちは後ろから検索を開始してから最初にマッチした searchElement の位置を返します。
    fromIndex も後ろからの検索開始位置で、省略可能です。デフォルトは0。

反復処理をするメソッド

こちらはどれも便利です。こちらは共通の補足説明が必要なので、まず先に補足説明します。以下のメソッドはいずれも次の引数をとります。
  • callback
    繰り返し処理内で使用する関数です。関数オブジェクト名または関数を直接書いてください。
    ここでの関数は3つの引数を使用することが可能みたいです。順に
    1. element
      これは繰り返し処理内で現在処理されている配列内の要素です。
    2. index
      これは繰り返し処理内で現在処理されている配列内の要素の位置です。
    3. array
      これは元の配列そのものです。
  • thisObject
    これは上記の callback 内で this を使用する場合、その this オブジェクトを指定してください。なので省略可能です。

各メソッドについて

以下のメソッドは配列内の全ての要素に対して callback 関数を実行します。また callback 関数は以下を見てもらえれば当然ですが forEach のもの以外は何らかの値を返さなければなりません。
条件ごとの処理に便利かもしれません。
  • every(callback[, thisObject])

    これは callback 関数が全ての要素に対して true ならば true を返します。
  • filter(callback[, thisObject])

    これは callback 関数が true を返す要素のみ配列に格納しその配列を返します。
  • forEach(callback[, thisObject])

    戻り値がないバージョンです。
  • map(callback[, thisObject])

    これは callback 関数の結果を全て配列に格納し、その配列を返します。
  • some(callback[, thisObject])

    これは callback 関数が少なくとも一つの要素に対して true ならば true を返します。
for each...in (ステートメント)
for...in (ステートメント)と似たような感じです。がちょっと素敵です。for...in で以下のように記述していたものが、
 var objs = [a:"A",b:"B",c:"C",d:"D"]
 for (var i in objs) {
      alert(objs[i]);
  }
for each...in を利用すると以下のように書くことができます。
 var objs = [a:"A",b:"B",c:"C",d:"D"]
 for each (var obj in objs) {
      alert(obj);
  }
連想配列を多用していると、とってもすっきりできてうれしいです。
Get Firefox!
この記事へのコメント
コメントを書く
※Name:

Email Address:

URL:

※Comments:

この記事へのトラックバック
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。