当前位置: 首页 > Web前端 > HTML

《一周一个大厂》回顾拼多多的面子体验,找不足,一一攻破!

时间:2023-03-28 18:53:48 HTML

搴忓ぇ瀹跺ソ锛屾垜鏄灄涓夐懌銆傜敤鏈€閫氫織鏄撴噦鐨勮瑷€瑙i噴鏈€闅剧殑鐭ヨ瘑鐐规槸鎴戠殑搴у彸閾€備竴涓郴鍒楃殑鏂囩珷锛屽ぇ浣撴祦绋嬫槸杩欐牱鐨勶細鎴戜細鏀堕泦涓€浜涘ぇ鍘傜殑闈㈠闈㈢殑缁忛獙锛岃瘯鐫€鍥炵瓟涓€涓嬨€傚鏋滄偍鑳藉叏閮ㄥ洖绛旓紝璇风瓑寰呬笅鍛ㄧ殑鍙︿竴杞€傚鏋滀綘涓嶈兘锛岃褰曚笅鏉ュ苟鍏嬫湇瀹冧滑銆傚啓涓€绡囨枃绔狅紝鐒跺悗鏈郴鍒椾笅涓€杞殑鐩殑鏄細閫艰揩鑷繁瀛︿範锛屽啓鏂囩珷宸╁浐鏂扮煡璇嗭紝澶嶄範鏃х煡璇嗘嫾澶氬浠婂ぉ鏄€婁竴鍛ㄤ竴涓ぇ鍘傘€嬬殑绗簩鏈熴€備綋浼氾紝鎵惧嚭涓嶈冻锛屼竴涓€鏀荤牬锛佷晶1.鎭㈠椤圭洰鏌ヨ-缁嗚妭浠庣暐銆?...2.鍨傜洿灞呬腑鍜屾按骞冲眳涓?銆俻osition:absolute+left:50%+top:50%+transform:translate(-50%,-50%)2.display:flex+justify-content:center+align-items:center3,display:table-cell+text-align:center+vertical-align:middle3,绠€鍗曡姹傜殑header浼氭湁浠€涔堝瓧娈礎ccept:鏀寔鐨凪IME绫诲瀷閫氳繃娴忚鍣ˋccept-Encoding:gzip,deflate:娴忚鍣ㄦ敮鎸佺殑鍘嬬缉缂栫爜鏄痝zip鍜宒eflateAccept-Language:zh-cn,zh;q=0.5:娴忚鍣ㄦ敮鎸佺殑璇█鏄畝浣撲腑鏂囧拰涓枃锛屽苟涓斿墠鑰呬紭鍏圕onnection:keep-alive:瀹㈡埛绔笌鏈嶅姟绔殑杩炴帴绫诲瀷涓洪暱杩炴帴Content-length:鍐呭闀垮害Content-type:鍐呭鏍煎紡Host:鍩熷悕Origin:璁块棶婧愬湴鍧€锛坧rotocal+host锛塕eferer:璁块棶婧愬湴鍧€锛堝畬鏁达級4.map銆乫ilter銆乺educe濡備綍浣跨敤锛熺湅鎴戣繖绡囨枃绔犲熀纭€寰堝ソ鍚楋紵鎬荤粨浜?8涓狤S6-ES12寮€鍙戞妧宸э紝鐪嬬湅浣犺兘寰楀嚑鍒嗭紵馃惗閲岄潰鐨刴ap,filter,reducepart5,Symbol浣犱簡瑙h繃鍚楋紵鐪嬫垜杩欑瘒鏂囩珷鍩虹寰堝ソ鍚楋紵鎬荤粨浜?8涓狤S6-ES12寮€鍙戞妧宸э紝鐪嬬湅浣犺兘寰楀嚑鍒嗭紵馃惗绗﹀彿閮ㄥ垎6锛孍S5缁ф壙锛孍S6绫荤户鎵匡紝闈欐€佹柟娉曪紵ES5缁ф壙锛氬伐浣滀腑閬囧埌鐨?0涓狫avaScript鍩虹鐭ヨ瘑鐐笶S6绫荤户鎵匡細鍩虹濂斤紵鎬荤粨浜?8涓狤S6-ES12寮€鍙戞妧宸э紝鐪嬬湅浣犺兘寰楀嚑鍒嗭紵馃惗绗?璇撅紝Promise涓殑瓒呮椂鎺у埗锛熶娇鐢≒romise.allconstrequest=(delay)=>(newPromise((resolve,reject)=>{setTimeout(()=>{resolve('data')},delay)}))consttime=(delay)=>(newPromise((resolve,rejct)=>{setTimeout(()=>{resolve('瓒呮椂锛?)},delay)}))constgetData=(delay1,delay2)=>(Promise.race([request(delay1),time(delay2)]))//娌℃湁瓒呮椂鐨勬儏鍐礸etData(1000,2000).then(res=>console.log(res))//瓒呮椂鐨勬儏鍐礸etData(2000,1000).then(res=>console.log(res))8.DFS鏌ユ壘鑺傜偣鍑芥暟depthFirstSearchNoRecursion(target){constres=[];conststack=target.slice();//console.log(stack)while(stack.length>0){constnode=stack.shift();//鏍堥《鑺傜偣琚脊鍑簉es.push(node.id);//濡傛灉璇ヨ妭鐐规湁瀛愯妭鐐癸紝鍒欏皢瀛愯妭鐐瑰瓨鍏ユ爤涓紝缁х画涓嬩竴娆″惊鐜痗onstlen=node.children&&node.children.length;for(leti=len-1;i>=0;i--){stack.unshift(node.children[i]);}}杩斿洖璧勬簮锛泒9.Node鏈変粈涔堢壒鐐癸紝閫傚悎鍋氫粈涔堬紵鐗圭偣1.Javascript杩愯鐜2.渚濊禆ChromeV8寮曟搸杩涜浠g爜瑙i噴3.浜嬩欢椹卞姩4.闈為樆濉濱/O5.杞婚噺绾у彲鎵╁睍锛岄€傜敤浜庡疄鏃舵暟鎹氦浜掑簲鐢?.鍗曡繘绋?鍗曠嚎绋嬪満鏅?.楂樺苟鍙戯紙鏈€閲嶈鐨勪紭鍔匡級2.閫傜敤浜嶪/O瀵嗛泦鍨嬪簲鐢?0.midwayoveregg鏈変粈涔堜紭鍔匡紵鎹垜鎵€鐭ワ紝瀵箃ypescript鐨勬敮鎸侀潪甯稿ソ銆?1.浣犵粌杩囨墦瀛楃鍚楋紵瀹炶返杩囷細Vue3+TS+ViteReact+TS+Vite12銆備綘閫氬父浣跨敤浠讳綍璁捐妯″紡鍚楋紵鍙兘浼氱敤鍒帮紝浣嗘槸娌℃敞鎰忥紝涔熸病鎬荤粨銆?3.甯哥敤鐨勬墦鍖呭伐鍏封€斺€擶ebpack銆傛帹鑽愬嚑绡囨枃绔犲惂锛氶兘2020骞翠簡锛屼唬鐮佷笉浼氱敤webpack灏变笉濂藉啓浜嗭紙瀹炴垬杩戜竾瀛楋級銆備綘鑳藉洖绛斿灏戜釜闂锛?4.浣犳湁浠€涔堟垜娌℃湁璁╀綘璇寸殑鍚楋紵鍜?5.缂撳瓨鐩稿叧锛宑dn缂撳瓨澶勭悊锛烠DN缂撳瓨绫讳技浜庢祻瑙堝櫒http缂撳瓨銆傝繖鏂归潰鎴戣繕涓嶆槸寰堢簿閫氾紝杩樺緱鐪嬬湅銆?6.浣犳湁浠€涔堥棶棰樺悧锛熸垜甯呭悧锛熶袱涓柟闈?.鍘嬪姏闈紝璐ㄧ枒鎰忚锛熺暐2.灏嗘暟缁勫睍骞抽渶瑕乧onstflatten=(list,level=+Infinity)=>{//...};甯搁噺鏁扮粍=[1,[2,[3,4,[5]],3],-4];constlist1=flatten(array);constlist2=flatten(array,2);鎺у埗鍙版棩蹇楋紙鍒楄〃1锛夛紱//[1,2,3,4,5,3,-4]console.log(list2);//[1,2,3,-4]闂姹傝Вconstflatten=(list,level=+Infinity)=>{letres=listfor(leti=0;iArray.isArray(item)))break}returnres};3.Promise闇€瑕乧onstmyPromise=val=>Promise.resolve(val);constdelay=duration=>{//...};myPromise(`hello`).then(delay(1000)).then(val=>console.log(val));//涓€绉掑悗杈撳嚭hello瑙e喅闂constdelay=duration=>{return(val)=>(newPromise((resolve,reject)=>{setTimeout(()=>resolve(val),duration)}))};涓夋柟闈?.椤圭洰缁嗚妭鐣ャ€?2銆佷綘鐪嬭繃Vue婧愮爜鈥斺€斿搷搴斿紡鍘熺悊锛宯extTick鍙互鐪嬫垜鐨刅ue婧愮爜鍒嗘瀽涓撴爮3銆佷綘鏈€杩戞湁鐮旂┒浠€涔堟柊鎶€鏈悧锛熸瓕鑸瀝ap4鍜岄」鐩紭鍖栨湁鍝簺鍋氭硶锛熻交寰湴銆?.鏍规嵁鑷繁鐨勯」鐩洖绛旇繖鍑犱釜鏂归潰锛?.涓氬姟浼樺寲2.璇锋眰浼樺寲3.灏佽浼樺寲4.鏋舵瀯浼樺寲5.V8濡備綍鎵ц涓€娈典唬鐮侊紵Step1:Parser灏嗕唬鐮佽浆鎹负AST(AbstractSyntaxTree)Step2:InterpreterIgnition鐢熸垚瀛楄妭鐮丼tep3:Execute6,72-editdistance涓嶄細銆?宸叉敹褰曞湪澶у巶绠楁硶绗?棰橈紝226-缈昏浆浜屽弶鏍戜笉浼氥€?8.鎬ц兘浼樺寲瀹炶返锛熻交寰湴銆?.鏍规嵁浣犵殑椤圭洰鍥炵瓟銆?9.杩樻湁鍏朵粬闂鍚楋紵鎴戝竻鍚楋紵缁撹鎴戞槸鏋椾笁閼紝涓€涓媯鐑殑鍓嶇鑿滈笩绋嬪簭鍛樸€傚鏋滀綘鏈変笂杩涘績锛屽枩娆㈠墠绔紝鎯冲鍓嶇锛岄偅鎴戜滑鍙互浜や釜鏈嬪弸锛屼竴璧烽挀楸煎搱鍝堬紝鎽告懜楸肩兢锛屽姞鎴戯紝璇锋敞鎰廩鎬濇兂]