ECMAScript 6概要
2655 ワード
ECMAScript 6はJavaScriptの次の基準であり、急速な開発の中でほとんど完成しています.2014年に正式発表される予定です.Mozillaはこの規格に基づいて、JavaScript 2.0を発売します.
ECMAScript 6の目標は、JavaScriptが複雑なアプリケーション、関数ライブラリ、コードの自動ジェネレータを作成するために使用できるようにすることである.
最新のブラウザは一部ECMAScript 6の文法に対応しています.「ECMAScript 6ブラウザ対応テーブル」を通じてブラウザのサポート状況を見ることができます.
一、ECMAScript 6新内容一覧 let、const(ブロックレベルの局所変数を定義する)、関数はブロックレベル領域で は、構成を解く: パラメータ設定のデフォルト設定: ret: spread: proxies: weak map: generators: を返します.ディショナー: array and generator coprehension: バイナリデータ: 類の文法は、 を含む.モジュール: quasis:multiiline,拡張可能な前処理文字列. 二、参考資料http://espadrine.github.io/Ne... espadrine http://javascript.ruanyifeng.... ruanyifeng ECMAScript 6シリーズの文章は以下のステップに移行してください.http://barretlee.com/ES6/
ECMAScript 6の目標は、JavaScriptが複雑なアプリケーション、関数ライブラリ、コードの自動ジェネレータを作成するために使用できるようにすることである.
最新のブラウザは一部ECMAScript 6の文法に対応しています.「ECMAScript 6ブラウザ対応テーブル」を通じてブラウザのサポート状況を見ることができます.
一、ECMAScript 6新内容一覧
let {x, y} = pt; let [s, v, o] = triple();
(できればlet pt = {x:2, y:-5}
).function f(x, y=1, z=0) {...}
function g(i, j, ...r) { return r.slice(i, j); }
(狂ったようにargmentsを使うのではなく).let a = [0,1,2,3]
、o = new Something(...a);
let obj = Proxy.create(handler, proto)
.簡単に言えば、クラスのオブジェクト要素のシンボルの再ロードです.let map = new WeakMap
.循環アプリケーションがあるときに使います.function* gen() { yield 1; yield 2; }
実は、gen()はnext()属性のあるオブジェクトfor (var [key, val] of items(x)) { alert(key + ',' + val); }
.Iteratorsは、generatorsまたはproxiesでありうる.[a+b for (a in A) for (b in B)]
(array coprehension)、(x for (x of generateValues()) if (x.color === 'blue'))
(generator expressition).const Pixel = new StructType({x:uint32, y:uint32, color:Color})
(ここではColor自体が構造タイプ)、new ArrayType(Pixel, 3)
.extends
、prototype
、and super
、class Point extends Base {
constructor(x,y) {
super();
this[px] = x, this[py] = y;
this.r = function() { return Math.sqrt(x*x + y*y); }
}
get x() { return this[px]; }
get y() { return this[py]; }
proto_r() { return Math.sqrt(this[px] * this[px] +
this[py] * this[py]); }
equals(p) { return this[px] === p[px] &&
this[py] === p[py]; }
}
module math {
export function sum(x, y) {
return x + y;
}
export var pi = 3.141593;
}
import {sum, pi} from math;
alert(sum(pi,pi));
You are ${age} years old.
.// The following regexp spans multiple lines.
re`line1: (words )*
line2: \w+`
// It desugars to:
re({raw:'line1: (words )*
line2: \w+',
cooked:'line1: (words )*
line2: \w+'})