3大ブラウザ、Flash、Google が合意する形でECMAScript 3.1 (4ではない)がリリースされるようだ。Flash の ActionScript 3 は ECMAScript 4ベースで、ブラウザ系のECMAScript3にたいして多くの言語機能を拡張しているが、3.1はもう少し穏健なものになるとのこと。それがいいことなのかどうかはよくわからないが、確実に3よりはよい、という機能拡張になっている感じがする。
amachangがまとめている仕様とそのコメント欄での会話から、さらに自分メモ。
- インタフェース定義方法: Getter/Setter, プロパティ・ディスクリプタ
- プロトタイプ継承方法の拡充
- Arrayオブジェクトのメソッド拡充: forEach, map, filter, ...
- ブロック内に限定される変数スコープ
- prototype.js の bind
- JSONオブジェクト: JSONを便利に使うための
- arguments: 引数オブジェクトが配列として扱える
- const: 定数 = 書き換えできない変数
- Decimal: 精度の高い数値を扱うのではないか?DBやC#のDecimalのように。
- ObjectLiteral の最後の , が仕様に入った (列挙する時に最後に余分なカンマが入っていてもエラーにならない)
個人的には、Rubyに「いいな」と感じたところが多く取り込まれている気がします(originはきっと他にあるのだと思いますが)。LL全体の流れに沿っているということなんじゃなないかなと。
- - -
参考
次の JavaScript の仕様はこうなる! ECMAScript 3.0 から 3.1 への変更点まとめ - IT戦記
http://d.hatena.ne.jp/amachang/20080821/1219302804
JavaScript 2.0はECMAScript 3.1ベースに、ECMAScript 4は譲歩 | エンタープライズ | マイコミジャーナル
http://journal.mycom.co.jp/news/2008/08/18/027/
JavaScript++かも日記: 【仕様】JavaScriptの未来はとりあえず ECMAScript 3.1へ、でもそれってASとの分裂?