ECMAScript 6概要


ECMAScript 6はJavaScriptの次の基準であり、急速な開発の中でほとんど完成しています.2014年に正式発表される予定です.Mozillaはこの規格に基づいて、JavaScript 2.0を発売します.
ECMAScript 6の目標は、JavaScriptが複雑なアプリケーション、関数ライブラリ、コードの自動ジェネレータを作成するために使用できるようにすることである.
最新のブラウザは一部ECMAScript 6の文法に対応しています.「ECMAScript 6ブラウザ対応テーブル」を通じてブラウザのサポート状況を見ることができます.
一、ECMAScript 6新内容一覧
  • let、const(ブロックレベルの局所変数を定義する)、関数はブロックレベル領域で
  • は、構成を解く:let {x, y} = pt; let [s, v, o] = triple();(できればlet pt = {x:2, y:-5}).
  • パラメータ設定のデフォルト設定:function f(x, y=1, z=0) {...}
  • ret:function g(i, j, ...r) { return r.slice(i, j); }(狂ったようにargmentsを使うのではなく).
  • spread:let a = [0,1,2,3]o = new Something(...a);
  • proxies:let obj = Proxy.create(handler, proto).簡単に言えば、クラスのオブジェクト要素のシンボルの再ロードです.
  • weak map:let map = new WeakMap.循環アプリケーションがあるときに使います.
  • generators:function* gen() { yield 1; yield 2; }実は、gen()はnext()属性のあるオブジェクト
  • を返します.
  • ディショナー:for (var [key, val] of items(x)) { alert(key + ',' + val); }.Iteratorsは、generatorsまたはproxiesでありうる.
  • array and generator coprehension:[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).
  • 類の文法は、extendsprototype、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));
  • quasis:multiiline,拡張可能な前処理文字列.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+'})
  • 二、参考資料
  • http://espadrine.github.io/Ne... espadrine
  • http://javascript.ruanyifeng.... ruanyifeng
  • ECMAScript 6シリーズの文章は以下のステップに移行してください.http://barretlee.com/ES6/