【先端】ES 6入門基礎知識

3062 ワード

ES 6の入門についての理解
テンプレート文字列(JavaScriptのための単純な文字列補間機能を提供しています.)、矢印関数(オペレータの左は入力のパラメータです.右は操作と戻りの値Input=>outputputです.)、for-of(データを遍歴するための配列の値です.)、argmentsオブジェクトは不定パラメータとデフォルトパラメータによって完璧に置き換えられます.ES 6はpromiseオブジェクトを仕様に組み込み、オリジナルのPromiseオブジェクトを提供します.letとconstコマンドを追加して変数を宣言します.ブロックレベルのスコープが追加されました.letコマンドは実際にブロックレベルのスコープを追加しました.ES 6は、varコマンドとfunctionコマンド宣言のグローバル変数が、グローバルオブジェクトの属性に属すると規定しています.letコマンド、constコマンド、classコマンド宣言のグローバル変数は、グローバルオブジェクトの属性ではありません.また、モジュールの概念を導入します.
Promiseに対する理解
  • Promise/A+の定義に従って、Promiseは4つの状態があります.
  • pending:初期状態、非fulfilledまたはrejectied.
  • fulfilled:成功の操作.
  • rejeced:失敗の操作.
  • settled:Promiseはすでにfulfilledまたはrejectに登録されています.pending
  • ではありません.
  • また、fulfilledはrejectdと共にsettled
  • と呼ばれています.
  • Promiseオブジェクトを用いて、遅延および非同期計算を行う
  • .
    Promiseの構造関数
  • 構造のPromiseの基本的な使い方は以下の通りです.
    var promise = new Promise(function(resolve, reject) {
    
            if (...) {  // succeed
    
                resolve(result);
    
            } else {   // fails
    
                reject(Error(errMessage));
    
            }
        });
  • Promiseの例は、then方法を有するオブジェクトを有し、通常はthenableと称される.その使い方は以下の通りです.
  • promise.then(onFulfilled, onRejected)
  • は、2つの関数をパラメータとして受信し、一つはfulfilledの時に呼び出され、一つはrejectの時に呼び出され、受信パラメータはfuture、onFulfilledはreolveに対応し、onRejectは
  • に対応します.
    Promiseとは?
  • Promiseは、非同期動作の最終結果を表すためのオブジェクトである
  • .
  • Promiseの最も主要なインタラクション方式:フィードバック関数をthen方法に導入して、最終結果またはエラー原因を得る
  • .
  • Promiseコードに記載されている表現:「連鎖式呼び出し」によって、コールバック関数の階層的な入れ子の代わりに、
  • ECMAScript 6の新しい特性
  • ブロック級作用エリアlet a = 1;
  • は、定数const PI = 3.141592654;
  • を定義することができる.
  • 変数デフォースvar [a, b, c] = [1, 2, 3];
  • 文字列の拡張(テンプレート文字列) var sum = ドル{a+b};
  • 配列の拡張(変換配列タイプ)Array.from($('li'));
  • 関数の拡張(拡張演算子)[1, 2].push(...[3, 4, 5]);
  • オブジェクトの拡張(同値等価アルゴリズム) Object.is(NaN, NaN);
  • データタイプ(Symbol)let uid = Symbol('uid');
  • を追加します.
  • データ構造(Map) let set = new Set([1, 2, 2, 3]);
  • を追加します.
  • for…ofサイクルfor(let val of arr){};
  • Promiseオブジェクト var promise = new Promise(func);
  • Generator関数 function* foo(x){yield x; return x*x;}
  • Classを導入する class Foo {}
  • モジュールシステム export default func;
  • を導入する.
  • async関数[ES 7]
  • を導入する.
    async function asyncPrint(value, ms) {
          await timeout(ms);
          console.log(value)
         }
         
    Object.is()と元の比較操作子=====の違い?
  • ==等しい演算子は、比較時に自動的にデータタイプ変換
  • を行います.
  • ==厳格等しい演算子は、比較時に暗黙的なタイプ変換を行いません.
  • Object.is同値等しいアルゴリズムは、==に基づいて0とNaN特別処理
  • を行う.
    +0 === -0 //true
    NaN === NaN // false
    
    Object.is(+0, -0) // false
    Object.is(NaN, NaN) // true
    Babelとは何ですか
  • BabelはJSコンパイラで、ES 6文法変換器のセットを持参して、JSコードを変換します.これらのトランスコーダは、開発者に最新のJS文法(ES 6/ES 7)を事前に使用させ、ブラウザのすべての互換性を待つ必要はない.
  • Babelのデフォルトは新しいJSシンタックス(syntax)だけを変換して、新しいAPIを変換しません.