あなたが知らないかもしれないES 6機能


1 . ESとは


ESまたはECMAScriptは、文書ECMA - 262に従ってECMAインターナショナルによって標準化された汎用プログラミング言語です.これは、JavaScriptの標準別のWebブラウザ間でWebページの相互運用性を確保するためのものです.
JavascriptはECMAScriptのサブセットです.Javascriptは基本的にECMAScriptであり、それをビルドします.

ecmascript 6とは


ES 6は、ECMAスクリプトプログラミング言語のバージョン6を参照します.これはJavaScript言語への主要な強化であり、多くの機能を大規模なソフトウェア開発を容易にするために意図します.
ES 6は、2015年6月に出版されました.その後、ECMAScript 2015に改称された.

ES 6の新機能


ES 6は大きな更新プログラムですので、言語に新しい追加がたくさんあった.それで、我々は今日の内容で最も中古のものをカバーしようとします.
ここでは、我々が見てみるものです

3.1 .矢印関数


簡単な作成プロセスを作成するさまざまな関数の作成の構文.関数を定義する場合は、その関数へのアクセスを保持する変数を定義します.その後、単に括弧内のパラメータを定義します.そして、我々は矢を使います⇒) その関数のブロックを参照する.
// Arrow function creation
const getUser = (user) => {
    return user
}

// Since we are not execute additional code
// we can remove curly paranthesis and return statement.
// This is exactly same as the above one.
const getUser = (user) => user

// If we have only one argument 
// we can also remove the paranthesis of the parameter that we defined
var odds = evens.map(v => v + 1);
// But if we have more than 1 we must wrap them with paranthesis.
var nums = evens.map((v, i) => v + i);

3.2 .テンプレート文字列


テンプレート文字列を使用すると、文字列を組み合わせることができ、JavaScriptの式をより簡単に書くことができます.我々は、それらを結合するために+を追加する必要なしに文字列のマルチラインを定義することができます.
// Basic literal string creation
`In JavaScript '\n' is a line-feed.`

// Multiline strings
`In JavaScript this is
 not legal.`

// String interpolation
var name = "Bob", time = "today";
`Hello ${name}, how are you ${time}?`

3.3 .破壊する


ES 6の最良の特徴の一つです.これは非常に簡単にオブジェクトや配列からいくつかの情報を取得することができます.例を示します.
// list matching
var [a, , b] = [1, 2, 3];
console.log(a) // 1
console.log(b) // 3

// Can be used in parameter position
function g({name: x}) {
  console.log(x);
}
g({name: 5})

// Fail-soft destructuring
var [a] = [];
typeof a // undefined

3.4 .デフォルト引数、残りとスプレッド


デフォルト引数は関数定義で定義できるものです.オプションのパラメータとして考えてください.
REST構文を使用すると、配列内で渡された引数のすべてを結合できます.それは議論と同じ種類です.
スプレッドは名前がspreas配列内の変数に指示することができます.複数の配列を組み合わせて(array .プロトタイプ. concat)、関数への引数として渡すことができます.
// DEFAULT ARGUMENTS
function f(x, y=12) {
  // y is 12 if not passed (or passed as undefined)
  return x + y;
}
f(3) == 15

// REST
function f(x, ...y) {
  // y is an Array
  return x * y.length;
}
f(3, "hello", true) == 6

// SPREAD
function f(x, y, z) {
  return x + y + z;
}
// Pass each elem of array as argument
f(...[1,2,3]) == 6

3.5 .レットアンドコンスト


letとconstはブロックスコープのバインドに有用であり、定義ブロック内でのみ使用できます.letは新しいvarを使用できます.
constは再定義の場合、TypeErrorをスローする変数を定義します.
function f() {
  {
    let x;
    {
      // okay, block scoped name
      const x = "sneaky";
      // error, const
      x = "foo";
    }
    // error, already declared in block
    let x = "inner";
  }
}

3.6 .約束する


約束は非同期プログラミングのためのライブラリです.これらは、非同期操作とその結果の値の最終的な補完(または失敗)を表します.
約束は3つの州;

  • 未定:初期状態は、どちらも果たしても拒否した.

  • 充足:操作が正常に完了したことを意味します.

  • 拒否:操作が失敗したことを意味します.

  • const promise = new Promise((resolve, reject) => {
        setTimeout(() => {
            console.log("Logging from timeout!!")
            resolve("promise resolved")
        }, 3000)
    })
    
    promise.then(res => console.log(res))
    

    リンク

  • ECMAScript - Wikipedia
  • What is ECMAScript?
  • GitHub - lukehoban/es6features: Overview of ECMAScript 6 features