鍘熸枃棣栧彂浜庢帢閲戝紑澶村ぇ瀹跺ソ锛屾垜鏄灄渚濅緷銆傚ソ涔呮病鍐欏崥瀹簡锛屽洜涓烘渶杩戝嚑涓湀閮藉湪绉嬫嫑涓娿€傛兂浜嗗崐澶╋紝涓嶇煡閬撳啓杩樻槸涓嶅啓绉嬫嫑鐨勭粡鍘嗐€傛渶杩戞€濈华寰堜贡锛屽績鎯呬篃姣旇緝娴簛銆傛兂韬轰細鍎匡紝鍙槸鎬昏寰楄鍋氱殑浜嬫儏寰堝銆備互涓嬮儴鍒嗘枃瀛楋紙闈為噰璁块儴鍒嗭級鍒犳敼鍐欙紝鍐欏垹鏀癸紝浠?鍙峰埌鐜板湪鏂柇缁画銆傝繖绡囨枃绔犲氨绠楁槸鎴戝ぇ瀛︾鎷涚殑璁板綍锛屼篃鏄垜鎴愰暱鐨勫洖蹇嗐€傜鎷涚粨鏋滃涓嬶細鐧惧害offer浜笢offer鐖卞鑹簅ffer鏈夎禐offer妗戣仾offer瀛楄妭锛坆ushi馃槀锛夎吘璁痮ffer绉嬫嫑锛屾姇浜嗗緢澶氬叕鍙革紝鍖呮嫭瀛楄妭鍜岃吘璁€?.涓冩湀鏄釜濂芥湀浠藉搱鍝堛€傚鏍′篃寮€濮嬫斁鏆戝亣浜嗭紝浣嗘槸鍥句功棣嗗湪鏆戝亣鏈熼棿鍙兘寮€涓€妤硷紝姣忓ぉ瑕佺炕灞辫秺宀殑甯︾潃鐢佃剳杩囨潵鍗佸嚑鍒嗛挓銆備粖骞?鏈堜唤寮€濮嬫姇绠€鍘嗭紝浣嗘槸鍩烘湰涓婃病鏈夋満浼氬弬鍔犱换浣曢潰璇曪紝鍥犱负鎶曠畝鍘嗚繃涓嶅幓锛堭煒傝嫤绗?jpg锛夛紝鏃╃殑鍏徃寰堝皯璁ゅ彲锛屾墍浠ユ暣涓竷鏈堝熀鏈笂閮芥槸鎰熻阿淇○煒傘€傛椂闂存帹鍒板叓鏈堜唤锛岄潰璇曚篃娓愭笎寮€濮嬩簡銆備互涓嬮潰缁忔槸绉嬫嫑璁板綍锛屼絾鐢变簬鏈汉鎶€鏈兘鍔涘拰姘村钩闈炲父鏈夐檺锛岃繖绡囨枃绔犲彲鑳藉浣犲府鍔╀笉澶с€俖_鑰屼笖濂戒箙娌℃妸鎵€鏈夌殑闈㈣瘯棰橀兘涓€涓€璁板綍涓嬫潵浜嗐€俖_鍏充簬鎴戝湪鏂囨湯鍐欏啓鍏充簬鎴戠殑锛屽憸鍛滃憸銆傪煒傚瓧鑺傜數鍟嗭紙棰勬壒锛?鏈堜唤鎻愬墠鎵逛簡鎶曠畝鍘嗭紝涓€鎶曞氨鎶曠畝鍘嗭紝鏈夊悓瀛﹀彂浜咹R寰俊銆傛垜鐨勭畝鍘嗕細濉炲埌涓€涓狧R鎵嬮噷锛屾渶鍚庝細缁欐垜闈㈣瘯鐨勬満浼氥€備竴杈圭殑闈㈣瘯瀹樺緢浜插垏锛屽厛鏄井绗戠潃鍚戞垜鑷垜浠嬬粛銆傛劅瑙夊緢濂斤紝鏁翠釜闈㈣瘯杩囩▼寰堣垝鏈嶏紝鏈夎鏈夌瑧銆侸S绫诲瀷鐨勮嚜鎴戜粙缁?>symbol鍑虹幇鐨勫師鍥狅紝瑙e喅浠€涔堥棶棰?>bigint鐨勪綔鐢ㄦ槸浠€涔?>鏍¢獙绫诲瀷鏈夊摢浜?>typeof(binary)鐨勫師鐞?>涓轰粈涔坣ull鏄垽鏂负涓€涓璞°€傚憡璇夋垜涓轰粈涔?.1+0.2!=0.3锛屽苟鍐欎竴涓嚱鏁版潵瑙e喅杩欎釜闂銆倀ypeof鍜宨nstanceof鐨勫尯鍒€傜紪鍐欎竴涓彲浠ユ娴嬫墍鏈夌被鍨嬬殑鏂规硶銆俧orin鍜宖orof鐨勫尯鍒€備粈涔堟槸椤甸潰鎬ц兘浼樺寲锛燂紙鎻愬埌鏈嶅姟绔帇缂┿€乭ttp缂撳瓨銆佸洖娴侀噸缁樼瓑锛岄潰璇曞畼浼氫粠杩欓噷鎻愰棶锛夊崗鍟嗙紦瀛樺瓧娈礐ache-Control鐨勫睘鎬у€兼湁鍝簺锛屽睘鎬у拰灞炴€ф湁浠€涔堝尯鍒€?>max-age銆備负浠€涔坔ttp1.1瑕佸姞Cache-Control瀛楁鍛紵浣犳槸鎬庝箞瀹炵幇鍥剧墖寤惰繜鍔犺浇锛堟垜鐢↖ntersectionObserver鍐欑殑锛変細transform瀵艰嚧閲嶆帓鍜岄噸缁樼殑锛熶负浠€涔堬紙RecalculateStyle->Layout->PaintSetupandPaint->CompositeLayersbecausetransformislocatedintheCompositelayer锛夋湇鍔″櫒绔殑gzip鍘嬬缉鍜宒eflate鍘嬬缉鏈変粈涔堝尯鍒紝鐢ㄧ殑鏄粈涔堢畻娉曘€傦紙LZ77锛岄『渚垮洖绛斾竴涓媝ng浣跨敤鐨勭畻娉曪級浣犵煡閬撶綉缁滄敾鍑绘湁鍝嚑绉嶏紵锛堟彁鍒颁簡csrf鍜寈ss锛夊浣曡繃婊ゅ拰閫夋嫨锛熷浣曢槻寰SRF鏀诲嚮锛宱rigin鍜宺eferrer鏈変粈涔堢己鐐广€俢ookie鏈夊摢浜涘睘鎬у€硷紵cookie鐨剆ameSite灞炴€у€兼湁浠€涔堜綔鐢紝鍜宧ttpOnly鏈変粈涔堝叧绯伙紵娴忚鍣ㄦ槸濡備綍瀹炵幇璺ㄥ煙鐨勶紝涓轰粈涔堜細鍑虹幇璺ㄥ煙闂锛焥essionStorage鑳藉惁鍏变韩鍚屾簮涓嶅悓椤甸潰涓嬬殑鏁版嵁锛燂紙涓嶈兘锛夊啓JSONP鐨勫疄鐜板師鐞嗐€備綘浜嗚ВpostMessage鍚楋紵鍛婅瘔鎴戞祻瑙堝櫒鐨勪簨浠跺惊鐜紵娴忚鍣ㄧ殑浜嬩欢寰幆鍜岃妭鐐圭殑浜嬩欢寰幆鏈夊尯鍒悧锛燂紙鑺傜偣V10涔嬪墠鏈夊尯鍒級//涓€閬撻asyncfunctionasync1(){console.log('async1start');awaitasync2()console.log('asyncend');}asyncfunctionasync2(){returnnewPromise((resolve,reject)=>{console.log('async2start');resolve()}).then(res=>{console.log('async2end');})}async1()newPromise(resolve=>{console.log('Promise');resolve()}).then(res=>{console.log('Promiseend');})console.log('scriptend');//async1startasync2startPromisescriptendasync2endPromiseendasyncendrequestAnimationFrame鏄庣櫧浜嗗悧锛熷畠鍦ㄤ簨浠跺惊鐜殑鍝釜闃舵鎵ц锛熻璇碢romise銆傦紙杩欓噷涔熼棶浜嗗緢澶歅romise鐨勯棶棰橈級瀹炵幇涓€涓猻chedule绫籧lassScheduler{add(promiseCreator){/*...*/}//...}consttimeout=(time)=>newPromise((resolve)=>{setTimeout(resolve,time)})constscheduler=newScheduler()constaddTask=(time,order)=>{scheduler.add(()=>timeout(time)).then(()=>console.log(order))}addTask(1000,'1')addTask(500,'2')addTask(300,'3')addTask(400,'4')//杈撳嚭锛?314//one寮€濮嬶紝1銆?涓や釜浠诲姟杩涘叆闃熷垪//500ms锛?瀹屾垚锛岃緭鍑?锛?杩涘叆鎵ц闃熷垪//800ms锛?瀹屾垚锛岃緭鍑?锛?杩涘叆鎵ц闃熷垪//1000ms锛?瀹屾垚锛岃緭鍑?//1200ms锛?瀹屾垚锛岃緭鍑?锛屽疄鐜颁竴涓狿romise.all锛屼綘鎯抽棶鎴戜粈涔堬紵鏃堕棿瓒呰繃1灏忔椂锛岄潰璇曞畼璇淬€傞潰璇曞畼鏈€鍚庤窡鎴戣绠€鍘嗕笂瀛︿笉濂斤紝浣嗘槸鍗氬杩樹笉閿欙紝涔熸槸浜偣锛屽氨缁欎簡闈㈣瘯鏈轰細銆傞潪甯告劅璋㈤潰璇曞畼鐨勯紦鍔便€傞偅鏃跺€欐垜杩樻兂鍋氫粬寮熷紵锛屽彲鏄笇鏈涜惤鍦ㄤ簡浜岄潰锛屼簩闈㈠交搴曠牬鐏簡銆傝闂」鐩€俶ixin鐨勫師鐞嗗拰浼樺厛绾э紝mixin鐨勭己鐐癸紙浼樺厛绾ч棶棰橈級锛屽浣曡В鍐炽€備綘鍐欒繃vue鎻掍欢鍚楋紵vue鎻掍欢涓璱nstall鐨勫疄鐜板師鐞嗭紝渚嬪vueRouter涓璱nstall鐨勪綔鐢ㄦ槸浠€涔堛€倂ue涓竴鏉℃暟鎹慨鏀逛簡澶氭锛屼竴涓囨锛寁ue鎬庝箞澶勭悊锛屾覆鏌撲竴娆★紵锛堜粬璁蹭簡vue寮傛鏇存柊鐨勫師鐞嗭紝浠栦笉婊℃剰锛夎缁嗚璇磀ep鍜寃atcher銆備綘鏄绠楁満涓撲笟鐨勫悧锛熶綘瀛﹁繃璁$畻鏈虹綉缁滃悧锛燂紙娌℃湁锛夋垜闂殑鏄疧Si涓冨眰鍗忚锛屽摢浜涘眰浣跨敤鍝簺鍗忚銆傜澶村嚱鏁板彲浠ョ敤new鍚楋紝鏈夎繖涓悧锛焀hatisimplementedbehindthenewkeyword->褰撲娇鐢╪ew鍏抽敭瀛楀湪鏋勯€犲嚱鏁颁腑杩斿洖瀵硅薄鎴栧熀鏈被鍨嬫椂浼氬彂鐢熶粈涔堛€?/涓€涓棶棰榲ara=0;functionParent(){this.a=1;returnthis;}Parent.a=2;Parent.prototype={a:3,setA:function(value){this.a=value;褰掕繕杩欎釜锛泒}console.log(newParent().a);console.log(Parent().a);console.log(newParent().setA(4).a);鎺у埗鍙版棩蹇楋紙涓€锛夛紱console.log(Parent().setA(5).a);闈㈣瘯瀹樹笉鏂偓淇冪瓟妗堛€傜瓟妗堟槸浠€涔堬紵鐢–SS鎴朖S瀹炵幇鍔ㄧ敾鍝釜鏇村ソ锛熶负浠€涔堬紵cookies鍙互璺ㄥ煙鍚楋紵鍩熷睘鎬т細琚慨鏀瑰悧锛熻缁嗚В閲婁粠url鍒伴〉闈㈡樉绀虹殑杩囩▼銆傞〉闈㈠簲璇ュ厛鍋滄娓叉煋杩樻槸tcp鍏坵ave锛堟垜璇寸殑鏄笉鍚岀殑鎯呭喌锛岄潰璇曞畼涓嶆弧鎰忥紝鎴戝洖鍘诲啓涓€涓猲odeserver锛岀劧鍚庡彂閫乧hunks缁檆lient灏辩煡閬撲簡锛変綘鍐欒繃灏忕▼搴忓悧锛岄偅涓皬绋嬪簭url鍦板潃鏄笉鍙鐨勶紝涓嶄娇鐢ㄥ煙鍚嶅彲浠ョ洿鎺ヤ娇鐢↖P鍚楋紵杩欐牱鐪佺暐鎺塪ns鐨勮В鏋愪笉鏄洿濂藉悧锛熶负浠€涔堬紵璇磋璺ㄥ煙锛宩sonp濡備綍澶勭悊澶氫釜闇€瑕佽皟鐢ㄥ悓鍚嶆柟娉曠殑缁勪欢锛屾湁鍐茬獊鎬庝箞鍔烇紵涓轰粈涔堣缃簡Access-Control-Allow-Credentials鍜寃itheCredentials鍚庯紝cookie杩樻槸鏃犳硶璺ㄥ煙鎴愬姛锛涘弽杞摼琛紝鍙嶈浆澶氬眰鏁扮粍([1,[2,[3,[4,[5,'null']]]]]=>[5,[4,[3,[2,[1,'绌?]]]]]);浠庡悗闈紝鍜х潃鍢寸瑧銆?.鐧惧害涓€澶╅潰绛惧悗锛屾湁涓ら亾绠楁硶棰樸€傚湪鎺掑簭閾捐〃涓紝瀛樺湪閲嶅鑺傜偣銆傝鍒犻櫎閾捐〃涓噸澶嶇殑鑺傜偣銆備笉淇濈暀閲嶅鑺傜偣锛岃繑鍥炴寚鍚戦摼琛ㄥご閮ㄧ殑鎸囬拡銆傛瘮濡傞摼琛?->2->3->3->4->4->5琚鐞嗘垚1->2->5銆傜粰瀹氫竴涓暣鏁版暟缁凙鍜屼竴涓湁搴忔暣鏁版暟缁凚锛岃灏嗘暟缁凚鍚堝苟鍒版暟缁凙涓垚涓轰竴涓湁搴忓崌搴忔暟缁刦unctionmerge(A,m,B,n){//...}娉ㄦ剰锛?.纭繚A鏁扮粍鏈夎冻澶熺殑绌洪棿瀛樻斁B鏁扮粍鐨勫厓绱狅紝A鍜孊鐨勫垵濮嬪厓绱犱釜鏁板垎鍒负m鍜宯锛孉鐨勬暟缁勭┖闂村ぇ灏忎负m+n銆?銆佷笉杩斿洖鍚堝苟鍚庣殑鏁扮粍锛屽彧鏄皢鏁扮粍B鐨勬暟鎹悎骞跺埌A涓€?銆丄鏁扮粍鐨勮寖鍥村湪[0,m-1]涔熸槸鏈夊簭鐨勮В閲婏細A鏁扮粍鏄痆4,5,6]銆丅鏁扮粍涓篬1,2,3]锛屽悗鍙扮▼搴忎細灏咥棰勫睍寮€涓篬4,5,6,0,0,0]锛孊浠嶄负[1,2,3]锛宮=3,n=3锛屼紶鍏ュ嚱鏁癿erge锛岀劧鍚庤姹傚悓瀛﹀畬鎴愬悎骞跺嚱鏁帮紝灏咮鐨勬暟鎹悎骞禔涓紝鏈€鍚庡悗鍙扮▼搴忚緭鍑篈鏁扮粍渚嬪瓙锛氳緭鍏4,5,6],[1,2,3]骞惰緭鍑篬1,2,3,4,5,6]銆侷nput[1,2,3],[2,5,6]output[1,2,2,3,5,6]strongcache,negotiationcache锛岃繖閲岄棶浜嗗緢澶氾紝娑夊強鍒板叿浣撳瓧娈电殑璁捐锛屼紭鐐瑰拰缂虹偣绛夛紙椤圭洰鍋氱殑缂撳瓨绛栫暐锛岀紦瀛樼殑渚濇嵁锛塏ode浜嬩欢寰幆鍜屾祻瑙堝櫒鏈変粈涔堝尯鍒紵杈撳叆杈撳嚭棰榲ue鏈変釜鍝嶅簲寮忓師鐞嗐€傝繖閲岃浜嗗緢澶氾紝椤轰究鎻愪竴涓嬩负浠€涔坣extTick鍦ㄦ覆鏌揥atcher涔嬪悗鍙互鎷垮埌鏂扮殑DOM鏁版嵁銆俷extTick锛堝吋瀹规€?绾ч檷绾у鐞嗭級闂寘鐨勫疄鐜板師鐞嗭紝闂寘浼氬嚭鐜颁粈涔堥棶棰橈紝鍐嶉棶涓€涓嬪浣曟娴嬪唴瀛樻硠婕忕殑闂锛屼粈涔堟儏鍐典笅浼氬鑷村唴瀛樻硠婕忋€傚浣曡В鍐筹紙鎬ц兘闈㈡澘鍜屽唴瀛樺揩鐓э級娴忚鍣ㄧ殑娓叉煋鍘熺悊锛孏UI绾跨▼濡備綍澶勭悊椤甸潰涓婄殑涓嶅悓璧勬簮銆傛秹鍙婂埌async鍜宒efer鐨勫尯鍒€侱OMContentLoaded鍜宭oad鐨勫尯鍒浣曚紭鍖栭〉闈㈢殑鎬ц兘锛屼粠鍝噷鍏ユ墜鍒嗘瀽锛屽垎鏋愭€ц兘鍜岀綉缁滈潰鏉跨殑鍙傛暟銆傚浣曡绠楅灞忔椂闂碏CP銆佺櫧灞忔椂闂淬€俆CP闃熷ご闃诲锛孴CP鎷ュ鎺у埗銆傦紙娴呰皥鎷ュ鎺у埗鍘熺悊鍜屽疄鐜扮畻娉曪級TCP娴侀噺鎺у埗锛屾粦鍔ㄧ獥鍙e疄鐜板師鐞嗐€侶TTP3.0瑙e喅浜嗗摢浜涢棶棰橈紝鍜孒TTP2鐨勫尯鍒紝璇︾粏浠嬬粛浜嗗璺鐢紝澶氳矾澶嶇敤瀛樺湪鍝簺缂洪櫡銆?..闈㈣瘯浣撻獙寰堝ソ銆傝繕鏈変竴浜涢璁颁笉澶竻浜嗭紝棰樼洰椤哄簭涔熶笉涓€鏍枫€傚嚑鍒嗛挓鍚庯紝闈㈤潰鐩歌鐨勯潰璇曞畼鏇村姞涓ヨ們浜嗐€傛皵姘涙瘮杈冨喎銆備篃鎯冲嚭浜嗕簩鍙夋爲鐩稿叧鐨勭畻娉曢銆傞鐩笉璁板綍銆傚啓閫掑綊鍜岄潪閫掑綊涓ょ鍐欐硶銆傜嚎绋嬩箣闂寸殑鍖哄埆锛堢閬擄紝鍏变韩鍐呭瓨锛宻ockets...锛岃繖閲屾湁鐐规祻瑙堝櫒娌欑鏈哄埗锛夋祻瑙堝櫒椤甸潰娓叉煋杩囩▼杩欓噷璁蹭簡寰堜箙銆傝繕闂繁HTTPS銆傚湪SSL鐨勬彙鎵嬭繃绋嬩腑锛屾彙鎵嬫渶缁堢粨鏋滃緱鍒扮殑瀵嗛挜鏄绉板瘑閽ヨ繕鏄潪瀵圭О瀵嗛挜锛燂紙杩欓噷鍒嗘瀽涓€娉㈠绉板瘑閽ュ拰闈炲绉板瘑閽ョ殑鍔犲瘑鍘熺悊锛夌煡閬撳摢浜涘绉板瘑閽ュ姞瀵嗙畻娉曪紙璁ㄨDES銆?DES銆丷SA锛塖SL姣忔閮介渶瑕佹彙鎵嬭繃绋嬪悧锛燂紙鎻℃墜鍚庯紝sessionID涓瓨鏈夊瘑閽ワ紝楠岃瘉sessionID鍗冲彲锛夋祻瑙堝櫒濡備綍楠岃瘉CA璇佷功鐨勬湁鏁堟€с€?DigitalSignaturewithDigestAlgorithm)浜嗚Вwebpack锛熷浣曠紪鍐欏姞杞界▼搴忓拰鎻掍欢锛熶綘鍋氫簡鍝簺鎬ц兘浼樺寲锛燂紙鎸囩殑鏄湪plugins涓娇鐢ㄥ嚱鏁癮pply鍜宺eceiveparameters鐨刢omplier鍜宑ompilation锛塇MR鍘熺悊锛堝叧閿槸Websocket锛夈€備綘瀛﹀埌浜嗗摢浜涙柊鎶€鏈€備綘鎯抽棶鎴戜粈涔堛€?..杩樻湁涓€浜涢棶棰樻垜璁颁笉澶竻浜嗐€傜粨鏉熷悗锛岃鎴戠瓑浜嗕笁閬嶃€傛垜浠笁鑱婂崐澶╋紝鍜岄潰璇曞畼鑱婂緱鏇村紑蹇冧翰鍒囦簡銆備含涓滄棤HR绔細HTML璇箟鏍囩鍙婂惈涔夛紵h5鏈夊摢浜涙柊鐗规€э紵css3鏈変粈涔堟柊涓滆タ锛焎ss3鐨勫姩鐢绘湁鍝簺锛烝nimation鍜宼ransition鐨勫叿浣撳尯鍒槸浠€涔堬紵濡備綍鎹曟崏鍔ㄧ敾鐨勬渶鍚庝竴甯э紵鐗╃悊鍍忕礌鍜岄€昏緫鍍忕礌鏈変粈涔堝尯鍒紵涓轰粈涔堢Щ鍔ㄧ浼氬嚭鐜?px鐨勯棶棰橈紝鐩掓ā鍨嬫€庝箞瑙e喅锛屽摢涓睘鎬у喅瀹氫簡鏍囧噯鍜屾爣鍑嗙洅妯″瀷锛焍order-box鍜宑ontent-box鐨勫尯鍒€俢ss涓湁鍝簺閫夋嫨鍣紝浼樺厛绾у叧绯讳笅闈㈢殑div鏍囩鏄剧ず浠€涔堥鑹瞘reenblue">color
