高度なプログラミングnotes

4728 ワード

パッチワークassign(obj,{c:3})var arr 1=[1,2,3,4]var arr 2=[1,2,3,4]var a=[...arr 1,...arr 2]connect es 6データ型Symbol
一時的には、コードブロック内でletコマンドを使用して変数を宣言する前に、この変数は使用できません.これは文法的には「一時的デッドゾーン」(temporal dead zone、TDZと略称)と呼ばれている.if (true) { tmp = ‘abc’;//ReferenceError let tmp;
}
データ型の検出
reducer reducerとactionの関係1、reducerは1つのactionと理解できる.typeのリスナーは、さまざまなタイプのactionをリスニングし、対応するstateを返します.2、actionは、reducerが傍受する様々なtypeとして理解され、dispatchによってトリガされる.3、dispatchのあるaction以降、dispatch関数の内部では、所定のactionに一致する場合、combineReducersのすべてのreducerが順番に呼び出される.typeは、対応するstateを返す.
作者:R_Xリンク:https://www.jianshu.com/p/69c36de6dba7出典:簡書の著作権は作者の所有である.商業転載は著者に連絡して許可を得てください.非商業転載は出典を明記してください.reducer(state,action) switch(action.type){ return state {…state} }
          ()
          :null string number boolean undefined symbol
          :object function array   

文字列解构const[a,b,...c]="JavaScript"console.log(a,b,c)
オブジェクト解構別名const{x,y:z}={x:1,y:2}console.log(x,z)
Math Math.ceil Math.floor
let {log,sin,cos } = Math;
配列解構造変数交換x=1,y=2=>x=2,y=1 var x=1 var y=2 var[x,y]=[y,x]console e.log(x,y)魔法文字列redux type const TYPE=Symbol("TYPE")const shapeType={strain:Symbol("demo")/魔法文字列}を削除
配列はvar arr=[2,2,2,2,2,2,3]arr.forEach(item=>{s.add(item)})を除去する.for(let i of s){ console.log(i) } var arr = [2,2,2,2,2,3] for(let i of arr){ console.log(i) }
各const mapdemo=new Map([1,“a”,[2,“b”,[3,“c”])for(let key of mapdemo.entries(){console.log(key)}
generator関数function*gen(){yield"hello"yield"world"}let g=gen()console.log(g.next())
1-2 {value:“world”,done:false} 3 {value:“underfined”,done:true}
iterator反復器let arr=[1,2,3]let obj={0:“zero”,1:“one”,[symbol.iterator:function(){const self=this let index=0 return{next:function(){}
} }] } map set for(let key of arr){ console.log(key) }
ジェネレータには反復器が含まれます
呼び出しジェネレータには反復器が含まれます
データストリームファイルストリーム
whyマクロキューマイクロキュー単一プロセスマルチスレッド
プログラム=qq
js単一スレッド
実行時間の長いものが非同期cpuで同じ時間に1つのプロセスしか実行できないpythonシートは最小単位です
jsスクリプトが上から下へ実行されると、マクロキュー(スレッドプール)
同期コード="マイクロキュー="マクロキューjsスクリプト実行完了同期キューstart end promiseマイクロキューpromise.thenマクロキューsettimeout
global('start’)global("end")zan settimeout="スタック
チェーンテーブル
単一チェーンテーブル二重チェーンテーブルループチェーンテーブルclass node{constructor(element){this.element=elementthis.next=null}
class linklist{ consructor(){ this.head=null this.count=0
} } }
object.keys()プロトタイプのすべてのプロパティを表示
スタック
filq frist in last out先進後出
キュー
FIFQ first in first out先出
切符を買って先に出る
スタック先後出
しんしんへんかん
ジョセフリング
関数の作用のパラメータは値を返していつ呼び出します
リーフノード
左右noneは一番下のノードです
eveal""の中の文はjsでvar arr=[]arr.instanceof Array trueを実行する
typeof()
Object
str=“dsadsadsad” let arrstr=Array.from(str) log(arrstr)
正規str.match(正規)
正則test.(str)
データ属性アクセサ属性Object.defineProperty//アクセサプロパティ(
mvvm
viewの状態と動作を抽象化する
uiとビジネスロジックを分けることができます
modelのデータは同時にviewの中で展示する必要があるため関連する業務のロジックを処理することを手伝います
MVVMのメリット
MVVMアーキテクチャでは、ViewとModelの間には直接的なつながりはなく、View Modelによるインタラクションであり、ModelとView Modelの間のインタラクションは双方向であるため、Viewデータの変化はModelに同期され、Modelデータの変化も直ちにViewに反応する.
ViewModelは双方向データバインディングによってView層とModel層を接続したが、ViewとModel間の同期作業は完全に自動的であり、人為的な干渉を必要としないため、開発者は業務ロジックに注目するだけで、手動でDOMを操作する必要はなく、データ状態の同期問題に注目する必要はなく、複雑なデータ状態メンテナンスは完全にMVVMによって統一管理されている.
ue.jsはMVVMアーキテクチャのベストプラクティスと言えるが、vueのデータ応答原理はフロントエンドの面接高周波問題であり、mvvmの給与をより向上させることを学ぶv-model v-bind v-text v-htmlである.
MVVMのデータハイジャック:Observerデータリスナーは、データオブジェクトのすべての属性をリスニングすることができ、変動があれば最新値を取得し、購読者に通知することができ、内部にObjectを採用する.definePropertyの[[get]]と[[set]]を実現します.vue 4 Proxy
データ属性ESデータ属性は、1つのデータ値の位置を含む.この場所では値の読み取りと書き込みが可能であり、データ属性にはその動作を記述する4つの特性[[Configurable]][[Enumerable]][[Writable]][[value]]がある.
アクセサ属性if(a=1&&a=2&&a==3){}1、アクセサ属性に[[Writable]]と[[value]]は含まれません.代わりに[[set]]と[get]]の2つの方法があります.2、アクセサ属性は、値を設定または変更するときに非常に役立ち、ある属性値が変化したかどうかを監視できます.
npm i-g typescript ts運転
tsc --init 60 42 15
自動監査
tsc a.ts
端末運転タスク監視
オブジェクト向けの3つの特徴
パッケージ継承堕胎、、
インスタンス属性クラス属性インスタンスメソッドクラスメソッド
統合キーワードextends
js react vue typeerrorsはtypeerrorを避けるだけでなく、データ型を自動的に識別する機能も備えています.
1.データ型基本データ型参照データ型number string underfined null boolean symbol
Array object function
2.メソッドとクラス
3.抽象
4.インタフェース
5.装飾器
let arr:[string,number]=[‘z’,1]//メタグループ
関数4要素
パラメータ戻り値関数の役割はどこで呼び出されますか?
ts jsが異なる
Enum名{}neverはあまり使われません
void戻りタイプなし
any任意タイプ[string,number]メタグループタイプ
Array number[]
-方法
インスタンス属性クラス属性の再ロード
インスタンスメソッドクラスメソッド
-クラス
継承、抽象クラス継承extend、抽象クラスabstract
インタフェース
interface
デコレーション
@メソッド名