來源:技術(shù)小能手 發(fā)布時(shí)間:2018-09-18 15:40:54 閱讀量:1121
嗯ennnnnn,,,,懶癌癥拖延的毛病,趁著最后一個(gè)上班日趕緊把最近一周的面試做個(gè)總結(jié)(雖然我下周一才入職),作為一位去年才畢業(yè)的前端妹子來說,其實(shí)還是個(gè)技術(shù)小白啦,近幾年還是想在技術(shù)上能有一個(gè)很大的提升,而且不是說金三銀四嘛(嚶嚶嚶,好像是真的),所以在試水了兩家公司之后,開啟了我一周左右的面經(jīng)之路,大大小小的公司都有面,我就是奔著漲知識(shí)和積累經(jīng)驗(yàn)去的!??!加起來差不多10家公司左右吧,成績自己也還挺滿意的,拿到了6家公司的offer,大小公司也都有,像大華、華三,但是最終綜合考慮的結(jié)果,去了一家自己面試體驗(yàn)最好的公司,至少也是一家上市公司啦~
● 簡歷一定要寫好,這個(gè)不用多說啦
● 先想清楚你辭職想去的下一家的初衷是什么,是加薪資、提升技術(shù) or 換個(gè)工作環(huán)境。根據(jù)你自己的真實(shí)情況,投簡歷的時(shí)候針對(duì)性地看看公司的招聘要求,先看看符合度是多少,以免遇到要求極度不符合又沒有在商量的前提下去面試了,最后的結(jié)果可能就是你還不錯(cuò),但是不符合我們公司的要求。
● 準(zhǔn)備工作要做好,我是因?yàn)椴湃ツ戤厴I(yè)啦,所以集中準(zhǔn)備在基礎(chǔ)知識(shí)和目前在用的VUE框架這兩塊啦,其他的知識(shí)點(diǎn)我平時(shí)在擼代碼的時(shí)候都有在做筆記,所以都會(huì)掃一遍知識(shí)點(diǎn),其他的你實(shí)際工作中沒有用到的但是比較流行的也不能忽略哦,了解一下或者臨時(shí)補(bǔ)一下,不要被問到?jīng)]有聽過有點(diǎn)尷尬的。面試完一家記得被面到不會(huì)的要做筆記做筆記!?。。?/span>就當(dāng)做是學(xué)習(xí)吧,而且有時(shí)候真的受益匪淺~
● 規(guī)劃好你自己的面試時(shí)間,提前要面試的公司做個(gè)簡單的背景了解。我是一個(gè)比較想把時(shí)間集中在一起做的人,所以提完離職后專心面試,一天會(huì)安排2-3家面試,面試前看看你即將面試的公司規(guī)模大小背景簡單地了解一下,公司的面試流程一般是筆試 or 電話面試 (可無) —> 技術(shù)面(1-2輪) —> HR面 。
在面兩個(gè)大公司和一個(gè)小公司的時(shí)候,尤其是一個(gè)傳統(tǒng)行業(yè)的大型公司時(shí),也有可能是我年限的問題,尤其注意基礎(chǔ),無論是筆試還是技術(shù)主管面試的時(shí)候都集中在這塊,像原生JS、原生Ajax等,,(這些雖然我在工作中用的也不是很多ennnn,原生的是用的不多,但是我自己很注重),說下面試碰到的吧(一些記不住了,想起來我補(bǔ)上哈~)。
● 說下你常用的幾種布局方式,集中往盒模型、flex布局說(至于grid布局,這個(gè)我看過沒有用到過)
● 實(shí)現(xiàn)水平居中的幾種方法?
● animate和translate有沒有用過,一些常見的屬性說下?
● CSS實(shí)現(xiàn)寬度自適應(yīng)100%,寬高16:9的比例的矩形。
● 如何實(shí)現(xiàn)左邊兩欄一定比例,左欄高度隨右欄高度自適應(yīng)?
● 變量提升遇到的一些簡單code題
● 說一下對(duì)閉包的理解,以及你在什么場景下會(huì)用到閉包?
● 說一下你對(duì)原型與原型鏈的了解度,有幾種方式可以實(shí)現(xiàn)繼承,用原型實(shí)現(xiàn)繼承有什么缺點(diǎn),怎么解決?
● iframe的缺點(diǎn)有哪些?
● Ajax的原生寫法
● 為什么會(huì)有同源策略?
● 前端處理跨域有沒有遇到過,處理跨域的方式有哪幾種方式去解決
● 怎么判斷兩個(gè)對(duì)象是否相等
● 代碼實(shí)現(xiàn)一個(gè)對(duì)象的深拷貝
● 從發(fā)送一個(gè)url地址到返回頁面,中間發(fā)生了什么
● 說下工作中你做過的一些性能優(yōu)化處理
這塊面試官主要是問你哪塊用的比較多,你可以引導(dǎo)性地把面試官往你會(huì)的地方說
● 箭頭函數(shù)中的this指向誰?
● 如何實(shí)現(xiàn)一個(gè)promise,promise的原理,以及它的兩個(gè)參數(shù)是什么?
● promise中第二個(gè)參數(shù)的reject中執(zhí)行的方法和promise.catch()都是失敗執(zhí)行的,分別這么寫有什么區(qū)別,什么情況下會(huì)兩個(gè)都同時(shí)用到?
● map和set有沒有用過,如何實(shí)現(xiàn)一個(gè)數(shù)組去重,map數(shù)據(jù)結(jié)構(gòu)有什么優(yōu)點(diǎn)?
ennnnn,因?yàn)槲覍I(yè)是網(wǎng)絡(luò)工程的,在華三和另一家公司面試的時(shí)候沒有被少問這些問題
● http、https、以及websocket的區(qū)別
● http常見的狀態(tài)碼,400,401,403狀態(tài)碼分別代表什么?
● 協(xié)商緩存和強(qiáng)緩存的區(qū)別
● 說下計(jì)算機(jī)網(wǎng)絡(luò)的相關(guān)協(xié)議?
因?yàn)槲业墓ぷ髦饕€在專注在web端,所以瀏覽器兼容性的問題沒有少碰到過,因主要是兼容IE8以上以及其他各個(gè)瀏覽器,這個(gè)就當(dāng)做總結(jié)一下吧(在被問到這一塊的時(shí)候其實(shí)我是有加分的,因?yàn)榛卮鸬谋容^多2333)
● 使用meta標(biāo)簽來調(diào)節(jié)瀏覽器的渲染方式,告訴瀏覽器用哪種內(nèi)核渲染,360雙核瀏覽器就是在ie和chrome之間來回切換,現(xiàn)在使用meta標(biāo)簽來強(qiáng)制使用最新的內(nèi)核渲染頁面
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
● rgba不支持IE8 解決:用opacity
● CSS3前綴
-webkit- webkit渲染引擎 chrome/safari
-moz gecko引擎 firefox
-ms- trident渲染引擎 IE
-o- opeck渲染引擎 opera
● 過渡不兼容IE8,可以用JS動(dòng)畫實(shí)現(xiàn)
● background-size不支持IE8,可以用img
● 使用PIE.htc讓IE6/7/8支持CSS3部分屬性,像CSS3的border-radius,box-shadow,css backgrounds(-pie-background),Gradients,RGBA屬性
.border-radius {
border-radius: 10px;
-webkit-border-radius: 10px;
-moz-border-radius: 10px;
background: #abcdef;
behavior: url(css/PIE.htc);
}
● 用css hack
IE6: _
IE7/7: *
IE7/Firefox: !important
IE7: *+
IE6/7/8: 9
IE8:
● :IE浮動(dòng)margin產(chǎn)生的雙倍距離,通常使用float:left來實(shí)現(xiàn),瀏覽器存在兼容性問題,導(dǎo)致圖片與 后面的內(nèi)容存在margin不一致的問題,解決方法就是給圖片添加diaplay:inline即可
● ie8不支持nth-child,但支持first-child和last-child,可以通過轉(zhuǎn)化寫法來處理問題,span:nth-child(2)可以轉(zhuǎn)換為span:first-child+span,可以使ie8顯示該內(nèi)容,last-child可以自定義一個(gè)class類兼容ie8寫法
● IE8下不支持HTML5屬性placeholder,解決問題的js插件挺多的,常用的使用jquery.JPlaceholder.js插件處理問題
● 識(shí)別HTML5元素,IE中可能無法識(shí)別nav/footer,使用html5shiv
● 火狐下表單阻止表單默認(rèn)提交事件:在form中添加 action="javascript:",秒殺上述所有默認(rèn)行為;
● 始終為按鈕button添加type屬性,IE下的默認(rèn)類型是button,其他瀏覽器下的默認(rèn)類型是submit
● IE下刪除所有不必要的console語句,IE下當(dāng)遇到console時(shí)不識(shí)別之后報(bào)錯(cuò),代碼不會(huì)執(zhí)行,或者全局自定義一個(gè)window.console方法
● IE瀏覽器下由于參數(shù)過長導(dǎo)致通過GET請(qǐng)求下載文件方法報(bào)錯(cuò),解決改為POST請(qǐng)求
● IE瀏覽器下iframe彈窗中輸入框光標(biāo)丟失(無法輸入)問題,解決清一下frame
● 兼容IE8 new Date()返回NaN問題,解決自定義方法
function parseISO8601(dateStringInRange) {
var isoExp = /^s*(d{4})-(dd)-(dd)s*$/,
date = new Date(NaN), month,
parts = isoExp.exec(dateStringInRange);
if(parts) {
month = +parts[2];
date.setFullYear(parts[1], month - 1, parts[3]);
if(month != date.getMonth() + 1) {
date.setTime(NaN);
}
}
return date;
}
因?yàn)槲液啔v上主要寫的是會(huì)vue啦,其實(shí)也不是精通,因?yàn)檫厡W(xué)邊開發(fā),主要是實(shí)踐的項(xiàng)目不是特別復(fù)雜,不過常見的一些坑點(diǎn)還是有遇到的啦,這個(gè)是看你會(huì)的框架問相應(yīng)的知識(shí)點(diǎn)
簡單闡述一下vue的生命周期
如何實(shí)現(xiàn)一個(gè)自定義組件,不同組件之間如何通信的?
父子組件如何通信的?
前端路由有沒有用過,你在項(xiàng)目中怎么實(shí)現(xiàn)路由的嵌套?
nextTick和Vuex兩個(gè)有沒有用過,分為什么情況下用到?
Vue的響應(yīng)式原理你知道是怎么實(shí)現(xiàn)的嗎?你覺得訂閱者-發(fā)布者模式和觀察者模式有區(qū)別嗎?有的話,說一下它們的區(qū)別。
因?yàn)轫?xiàng)目還在前后端未分離的時(shí)候,我研究的gulp比較多,像grunt、fis3也有了解過,webpack還不是很熟(感覺要GG),所以這塊問的比較少,面試官也就沒有這么問,不過我覺得還是有必要去熟悉或者實(shí)踐一下一下
有一些技術(shù)主管會(huì)考量一下你除了前端之外的技術(shù)能力,例如你熟悉的后端語言,sql會(huì)不會(huì),還有人問我Linux命令會(huì)不會(huì)的(我內(nèi)心:不會(huì)不會(huì)不會(huì)====),不過node多多少少都有在用,這個(gè)也是前端應(yīng)該要會(huì)的啦(but技術(shù)小白我不會(huì),只是用到一點(diǎn)點(diǎn)~)
把面試當(dāng)做學(xué)習(xí),這個(gè)過程你會(huì)收益很大。自己也拿到了幾家還不錯(cuò)的offer,最后選擇了我比較滿意的一家公司,我并沒有特別在意薪資這塊,都是綜合考慮的一個(gè)結(jié)果啦!前端知識(shí)很雜,可能實(shí)際工作中用到的技術(shù),像框架都是跟著公司的要求走的,像我最近也在看React啦,Vue和React都對(duì)比著再學(xué)習(xí),不要問我為什么沒有在看Angular(懶懶懶),因?yàn)樾鹿菊f是偏向于React,所以最重要的還是更看重基礎(chǔ)知識(shí)的積累吧,當(dāng)然,開心最重要~
原文發(fā)布時(shí)間為:2018-09-15
本文作者:Qin菇?jīng)?/span>
本文來自云棲社區(qū)合作伙伴“前端大學(xué) ”,了解相關(guān)信息可以關(guān)注“前端大學(xué)”。