BPStudy#60 ECMAScript5時代のJavaScriptライブラリ
JavaScript: 世界で最も誤解されたプログラミング言語(2001年)
JavaScript: The World's Most Misunderstood Programming Language
http://d.hatena.ne.jp/brazil/20050829/1125321936
2012年未だ誤解されているプログラミング言語JavaScript
嫌われている"JavaScript"とは何か?
- ECMAScript3
- 13年前・前世紀(1999年)の言語仕様
- IE6
- 11年前(2001年)のランタイム
嫌われている"JavaScript"と同世代の各言語のバージョンは?
- Python2.1
- Ruby1.6
- Perl5.6
- J2SE1.3
現在のJavaScriptはECMAScript5
どの環境で使える?
http://kangax.github.com/es5-compat-table/
ES5 features on iOS/Android's default browser - 愛と勇気と缶ビール
- IE9+(Strict modeを除く)
- Google Chrome13+
- 「変数名にゼロ幅スペース使用可能」を除く
- Firefox6+
- Safari5.1.4+
- 「変数名にゼロ幅スペース使用可能」を除く
- 込みなら6+
- 「変数名にゼロ幅スペース使用可能」を除く
- MobileSafari iOS6+
- Android 標準ブラウザ 4.0+
- 「変数名にゼロ幅スペース使用可能」を除く
- strict modeを除く
- 込みなら4.1+
- Opera12+
- 「変数名にゼロ幅スペース使用可能」を除く
shimライブラリを使えば対応環境はもっと増える
GitHub - es-shims/es5-shim: ECMAScript 5 compatibility shims for legacy (and modern) JavaScript engines
何が出来る?
- strict mode
- Array#map等のarrayの反復メソッド
- その他builtin objectの便利メソッドが若干
- native JSON
- Function#bind
- thisと引数の束縛
- Object.create
- コンストラクタを経由せずにprototype継承が出来る
- Object.prototypeを継承しないobject、純粋な辞書を作れる
- object保護関数群
- Object.preventExtensions
- propertyの追加定義禁止
- Object.seal
- propertyの追加定義・再定義禁止
- Object.freeze
- propertyの追加定義・再定義・値の変更禁止
- Object.preventExtensions
- Object.Object.defineProperty
- writable
- enumerable
- configurable
- value
- get
- set
ECMAScript5の豊かさを活かしていきたい
ECMAScript5をターゲットにしたライブラリ、BeautifulProperties.js
v0.1.0を先ほどリリースしました
GitHub - monjudoh/BeautifulProperties.js at v0.1.0