【2021秋招_前端開發(fā)】跟誰學(xué)一面 2020.10.16
1.自我介紹,實(shí)習(xí)經(jīng)歷
2.react和vue的區(qū)別,class和function區(qū)別,優(yōu)缺點(diǎn)
3.項(xiàng)目中很多state,有沒有方法對(duì)這些state進(jìn)行管理 (放到一個(gè)對(duì)象里面),某個(gè)state發(fā)生變化,如何更新
擴(kuò)展運(yùn)算符,后面添加要修改的變量以及內(nèi)容,為什么要這樣做?...是進(jìn)行淺拷貝
3.typescript中interface和type的不同,interface和class的不同
4.koa的優(yōu)勢,中間件執(zhí)行兩次,為什么還選用Koa
5.瀏覽器存儲(chǔ), localStorage, sessionStorage, cookie區(qū)別
6.cookie每次請(qǐng)求都會(huì)攜帶嗎,跨域cookie如何發(fā)送
7.要保存多于10M的緩存,如何實(shí)現(xiàn)?PC端和移動(dòng)端對(duì)存儲(chǔ)大小的限制一樣嗎?
存儲(chǔ)大小是相對(duì)于某個(gè)域來講的,放不下可以開一個(gè)子域;不一樣
8.let, const, var的本質(zhì)區(qū)別,判斷輸出?
9.狀態(tài)碼
200與304的區(qū)別
強(qiáng)制緩存和協(xié)商緩存
10.算法:標(biāo)準(zhǔn)化輸出
let sNodes = [ {id:"1-1",pid:1,name:'第一節(jié)'}, {id:"1",pid:0, name:'第一章'}, {id:"2-1",pid:2,name:'第一節(jié)'}, {id:"2",pid:0, name:'第二章'} ];
Output:
[{id:"1",pid:0, name:'第一章',children: [{id:"1-1",pid:1,name:'第一節(jié)'}]}, {id:"2",pid:0, name:'第二章',children: [{id:"2-1",pid:2,name:'第一節(jié)'}]} ];
錯(cuò)誤示范:
2.react和vue的區(qū)別,class和function區(qū)別,優(yōu)缺點(diǎn)
3.項(xiàng)目中很多state,有沒有方法對(duì)這些state進(jìn)行管理 (放到一個(gè)對(duì)象里面),某個(gè)state發(fā)生變化,如何更新
擴(kuò)展運(yùn)算符,后面添加要修改的變量以及內(nèi)容,為什么要這樣做?...是進(jìn)行淺拷貝
3.typescript中interface和type的不同,interface和class的不同
4.koa的優(yōu)勢,中間件執(zhí)行兩次,為什么還選用Koa
5.瀏覽器存儲(chǔ), localStorage, sessionStorage, cookie區(qū)別
6.cookie每次請(qǐng)求都會(huì)攜帶嗎,跨域cookie如何發(fā)送
7.要保存多于10M的緩存,如何實(shí)現(xiàn)?PC端和移動(dòng)端對(duì)存儲(chǔ)大小的限制一樣嗎?
存儲(chǔ)大小是相對(duì)于某個(gè)域來講的,放不下可以開一個(gè)子域;不一樣
8.let, const, var的本質(zhì)區(qū)別,判斷輸出?
var?a?=?'abc'; if?(true)?{ ??a?=?123; ??let?a?=?4; ??console.log(a);?? }
報(bào)錯(cuò),因?yàn)闀簳r(shí)性死區(qū)
1XX: 2XX:200 3XX:304 4XX:400,401,403,404,405 5XX:200 from disk/from memory (加載圖片等靜態(tài)資源時(shí)出現(xiàn))
200與304的區(qū)別
強(qiáng)制緩存和協(xié)商緩存
10.算法:標(biāo)準(zhǔn)化輸出
let sNodes = [ {id:"1-1",pid:1,name:'第一節(jié)'}, {id:"1",pid:0, name:'第一章'}, {id:"2-1",pid:2,name:'第一節(jié)'}, {id:"2",pid:0, name:'第二章'} ];
Output:
[{id:"1",pid:0, name:'第一章',children: [{id:"1-1",pid:1,name:'第一節(jié)'}]}, {id:"2",pid:0, name:'第二章',children: [{id:"2-1",pid:2,name:'第一節(jié)'}]} ];
function?transformTozTreeFormat(sNodes)?{ ????let?res?=?[]; ????sNodes.sort((a,?b)?=>?a.id.length?-?b.id.length); ????for?(let?i?=?0;?i?<?sNodes.length;?i++)?{ ????????let?cur?=?sNodes[i]; ????????if?(cur.id.length?==?1)?{ ????????????res.push(cur); ????????}?else?{ ????????????let?ids?=?cur.id.split('-'); ????????????for?(let?j?=?0;?j?<?res.length;?j++)?{ ????????????????if?(res[j].id?==?ids[0])?{ ????????????????????if?(!res[j].children)?{ ????????????????????????res[j].children?=?[]; ????????????????????} ????????????????????res[j].children.push(cur); ????????????????} ????????????} ????????} ????} ????return?res; } let?sNodes?=?[?{id:"1-1",pid:1,name:'第一節(jié)'},?{id:"1",pid:0,?name:'第一章'},?{id:"2-1",pid:2,name:'第一節(jié)'},?{id:"2",pid:0,?name:'第二章'}?]; let?res?=?transformTozTreeFormat(sNodes); console.log(res);剛開始寫的太著急了,以為有深層嵌套,寫了個(gè)遞歸,后來面試官姐姐說你調(diào)試一下,改好了
錯(cuò)誤示范:
function?helper(sNodes,?res,?index){ ????if?(index?==?sNodes.length)?return; ????for?(let?i?=?index;?i?<?sNodes.length;?i++)?{ ????????let?cur?=?sNodes[i]; ????????if?(cur.id.length?==?1)?{ ????????????res.push(cur); ????????}?else?{ ????????????let?ids?=?cur.id.split('-'); ????????????for?(let?j?=?0;?j?<?res.length;?j++)?{ ????????????????if?(res[j].id?==?ids[0])?{ ????????????????????if?(!res[j].children)?{ ????????????????????????res[j].children?=?[]; ????????????????????} ????????????????????res[j].children.push(cur); ????????????????} ????????????} ????????} ????????helper(sNodes,?res,?i?+?1); ????} }面試體驗(yàn)98分,極好#高途##前端工程師##面經(jīng)##校招#