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:指定された文字列で終わるかどうか判断する リピート:繰り返し指定回数 オブジェクト 簡略化されたオブジェクト書き方 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の実装: クラス クラス を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オブジェクトだけに対して
ES 6
let name = 'Tom';
let age = 12;
let person = {
name,
age,
setName (name) {
this.name = name;
}
};
(コールバック関数の階層的な入れ子、符号化は常に右に拡張され、読み取りが悪い)// 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)
))