ES(学習ノート)

5139 ワード

理解ES
  • フルネーム:ECMAScript
  • js言語規格
  • 私達が使っているjsはその実現
  • です.
  • jsの構成
  • ECMAScript(jsベース)
  • 拡張-->ブラウザ端
  • BOM
  • DOM
  • 拡張-->サーバ端
  • Node.js
  • ES 5
  • 厳格モード
  • 運転モード:通常モードと厳格モード
  • は厳しいフォーマットを適用します.
  • 作用:
  • は、Javascriptをより厳しい条件で
  • を実行させる.
  • Javascriptの文法のいくつかの不合理さ、不謹慎さを取り除いて、いくつかの奇異な行為を減らします.
  • コードの運行の一部の安全性をなくし、コードの運行の安全性を保証する.
  • 覚えておく必要があるいくつかの変化
  • 宣言定義変数はvar
  • を使用しなければならない.
  • は、カスタム関数のthisキーがグローバルオブジェクト
  • を指すことを禁止する.
  • は、evalスコープを作成し、より安全な
  • .
  • JSONオブジェクト
  • 作用:jsonオブジェクト/配列とjsオブジェクト/配列との相互変換に用いる
  • .
  • JSON.strigify(Obj/arr)jsオブジェクト(配列)は、jsonオブジェクト(配列)
  • に変換される.
  • JSON.parse(json)Jsonオブジェクト(配列)は、jsオブジェクト(配列)
  • に変換される.
  • Object拡張
  • Object.create:新しいオブジェクトを作成します.
  • は、指定されたオブジェクトを元に新たなオブジェクトを作成する
  • .
  • は、新しい属性を指定し、属性について説明する.
  • value:指定値
  • writable:現在の属性値が修正可能かどうかを識別し、デフォルトはtrue
  • です.
  • get方法:現在の属性値を得るためのコールバック関数
  • set方法:現在の属性値の変化を監視するためのコールバック関数
  • Object.defineProperties(object,descriptors):拡張された複数の属性を指定対象に定義する
  • Aray拡張
  • Aray.prototype.indexOf:取得値は、配列内の最初の下付き
  • である.
  • Aray.prototype.lastIndexOf(value):配列内の最後の値を得る
  • Aray.prototype.forEach(function(item、index){}:エルゴード配列
  • Aray.prototype.map(function(item,index):遍歴行列は、新しい配列
  • を返します.
  • Aray.prototype.filter(function(item,index)::エルゴードフィルタリングされたサブアレイ
  • Function拡張
  • Function.prototype.bind(obj)
  • は、関数内のthisをobjに結合し、関数を
  • に戻す.
  • 面接試験問題:bind()とcall()とappy()を区別しますか?
  • fn.bind(obj):関数のthisを指定し、関数
  • を返します.
  • fn.call:関数のthisを指定し、関数
  • を呼び出します.
  • Date拡張
  • Date.now():現在時間値
  • を取得する.
    ES 6
  • の新しいキーワード
  • let/const
  • ブロック作用領域
  • 変数がアップグレードされていません.
  • は定義を繰り返してはいけません.
  • 値が可変ではない
  • 変数の解凍値
  • は、複数のデータを含むオブジェクト(配列)を一度に複数の変数
  • に値付けする.
  • データソース:オブジェクト/配列
  • 目標:{a,b}/[a,b]
  • 各種データタイプの拡張
  • 文字列
  • テンプレート文字列
  • 役割:文字列のつなぎ合わせを簡略化する
  • テンプレート文字列は`
  • を使用しなければなりません.
  • 変化する部分使用$xxx定義
  • contains:指定された文字列
  • が含まれているかどうかを判断する.
  • starts With:指定された文字列で先頭
  • が始まるかどうかを判断する.
  • endsWith:指定された文字列で終わるかどうか判断する
  • リピート:繰り返し指定回数
  • オブジェクト
  • 簡略化されたオブジェクト書き方
    let name = 'Tom';
    let age = 12;
    let person = {
        name,
        age,
        setName (name) {
            this.name = name;
        }
    };
    
  • Object.assign:ソースオブジェクトの属性をターゲットオブジェクトにコピーする
  • .
  • Object.is(v 1,v 2):2つのデータが完全に等しいかどうかを判断する
  • proto属性:暗黙的原型属性
  • 配列
  • Aray.from(v):疑似配列オブジェクトまたはエルゴードオブジェクトを真の配列
  • に変換する.
  • Aray.of(v 1,v 2,v 3):一連の値を行列
  • に変換する.
  • find(function(value,index,arr){return true}:最初の満足条件を見つけてtrueに戻る要素
  • findIndex(function(value、index、arr){return true}:最初の満足条件を見つけてtrueに戻る要素下付きスケーリング
  • 関数
  • 矢印関数
  • は、匿名関数
  • を定義するために使用される.
  • 基本文法:
  • 引数がありません.()=>consosone.logs('xxxxx')
  • パラメータ:i=>i+2
  • は一つのパラメータより大きい:(i,j)=>i+j
  • 関数は、大かっこではありません.標準戻り結果
  • 関数体が複数の語句がある場合、{}で囲む必要がある
  • 使用シーン:コールバック関数を定義することが多い
  • モザイクのデフォルト値
  • は、モダリティを定義する際のデフォルト値を指定する
  • である.
  • レスポンス(可変)パラメータ
  • は、形参左側の…によって表現され、アーグメンツの代わりに
  • を使用する.
  • 拡張演算子(...)
  • は、配列またはオブジェクト中のデータ
  • を分解することができる.
  • set/Map容器構造
  • 容器:複数のデータを保存できるオブジェクトと、内部データを操作する方法を備えている必要があります.
  • はいずれのオブジェクトもコンテナとして使用できますが、関数などの容器としてはあまり適していないオブジェクトもあります.
  • Setの特徴:複数のvalueを保存し、valueは重複しない==>配列要素は
  • を重くする.
  • Mapの特徴:複数のkey-valueを保存し、keyは繰り返さない.valueは
  • を繰り返すことができる.
  • API
  • Set()/Set(arr)/arrは1次元配列
  • である.
  • add(value)
  • delete
  • clear()
  • has
  • size
  • Map()/Map(arr)/arrは二次元配列
  • である.
  • set(key,value)
  • delete(key)
  • clear()
  • has(key)
  • size
  • for-ofサイクル
  • は任意の容器
  • を巡回することができます.
  • 配列
  • オブジェクト
  • ダミー/クラスオブジェクト
  • 文字列
  • 反復可能なオブジェクト
  • Promise
  • 解決 (コールバック関数の階層的な入れ子、符号化は常に右に拡張され、読み取りが悪い)
  • は、同期符号化方式で非同期呼び出しを実現することができる
  • .
  • はes 6の前に原生のjsの中でこのように実現したのではありませんて、いくつかの第三者の枠組み(jQuery)はpromise
  • を実現しました.
  • ES 6で定義されたAPIの実装:
    // 1.   promise  
    var promise = new Promise(function(resolve, reject){ 
      //        
      if(  ) { //        
        resolve(result); 
      } else { //        
        reject(errorMsg); 
      } 
    }) 
    // 2.   promise   then()
    promise.then(function(
      result => console.log(result), 
      errorMsg => alert(errorMsg)
    ))
    
  • クラス
  • クラス
  • をclassで定義します.
  • constructor()で構造方法を定義する
  • 一般的な方法:xxx(){}
  • は、extensでサブクラス
  • を定義する.
  • Super()を用いた親類の構造方法
  • サブクラスの方法は、親から引き継ぐ方法をカスタマイズして、もう一度
  • を実現します.
  • jsには、同じ方法ではないが、パラメータが異なる文法
  • があります.
  • モジュール化(後述)
  • ES 7
  • 指数演算子:*
  • Aray.prototype.includes:指定されたvalue
  • が配列に含まれているかどうかを判断する.
  • 区別方法の2つの呼び方
  • 静的(ツール)方法
  • Fun.xxx=function()
  • 例の方法
  • のすべてのインスタンスオブジェクト:Fun.prototype.xxx=function(){}/xxxはFunのすべてのインスタンスオブジェクト
  • について
  • ある実例オブジェクト:fun.xxx=function(){}/xxxは、funオブジェクトだけに対して