前端面試知識點--5
內容來自牛客網面經
一面:
事件型別、繫結方式;
專案介紹;
專案中實現的某個元件的實現方式;
響應式佈局的方式;
二面:
閉包是什麼;
js中的物件,物件的繼承;
我的專案中模態框表單的實現方式,如何呼叫的(這個其實專案中並沒有用的那麼高階,但是我給出了現在的思考和實現方式,臨場發揮��);
跨域瞭解多少(講了CORS、JSONP、postMessage啥的);
css盒子模型(這個基本都會問到);
瀏覽器核心有哪些;
瀏覽器中從輸入url到顯示頁面都發生了什麼(經典題);
瀏覽器的渲染方式;
http協議;
一面:
自我介紹,挑一個專案介紹
js物件;
一個物件的例項,如何統計被幾次呼叫過,分別具體被哪些函式呼叫過,可以有哪些方法;
實現私有變數(這裡當時還沒看到相關部分,只能想到用屬性的setter、getter來做。。。��面試官各種啟發呀。。);
css垂直水平居中有哪些方法;
css清除浮動的原理,clear:both和clear:left的區別;
行內元素和塊級元素的區別;
二面:
css盒子模型;
載入效能優化的方法;
http快取控制;
瀏覽器如何匹配某個選擇器;
websocket相關,輪詢,polling;
ws和wss的區別;
兩列布局;
一面:
盒子模型;
border的設定,border的上下左右具體範圍;
css垂直水平居中的方法,flex佈局的具體實現;
兩列布局的方式;
專案中做的一個導航條點選平滑滾動到對應位置的效果,介紹它的實現方式;
閉包,塊級作用域;
https的原理,加密方式,怎麼加密的(這個真不太會了。。。暈);
二面:
上來就寫個Animal類,有個Cat類繼承它,要求新建一個Cat的例項,可以呼叫catch方法輸出自己的名字“大白的貓”;
閉包;
js基本資料型別,[]===[]嗎;
寫個方法判斷一個變數的型別;
事件型別,事件繫結方式;
跨域,在不支援json格式的瀏覽器中,寫方法能夠將json字串與物件互相轉換;
session和cookie的區別;
簡歷上寫了react,於是給了個場景,A、B、C三個大元件,點選A中的每個小元件Ci,能在B中顯示一個form,在form的input中寫入文字,可以實時顯示在C中,點選form裡的button,可以改變Ci的顏色;
用過LESS,具體用到了什麼功能;
響應式佈局;
es6中字串模版怎麼用;
用bfs實現前序遍歷;
三列布局;
盒子模型;
二面:
專案介紹;
做一些js題(考察this,作用域,變數宣告,引用型別);
三面:
感覺自己優勢在哪裡;
前端框架了解哪些,vue和react對比;
對自己有何職業規劃;
感覺自己需要如何提高;
演算法題,給千萬量級的珠子,共上百種顏色,圍成一個圈,求連續的包含所有顏色的最短子串的長度,並分析時間複雜度;
介紹MVVM模式;
grunt用過哪些功能;
介紹某個專案;
如果要你設計一個元件,你會如何設計(這個不確定是不是百度問的了);
哪方面學的比較好,哪方面比較薄弱(我直接坦白說演算法資料結構等計算機基礎可能相對更好點,但是js不太深入,於是後面他就懂了,全問的演算法��);
實現洗牌演算法;
實現一個列表中每個li裡有一個input和button,點選button刪除對應的li節點;
最短路演算法(dijkstra),有負環怎麼辦(spfa);
js中的閉包概念?濫用閉包有什麼副作用?
- js裡的基本資料型別?有幾種方式可以判斷資料型別?
- jQuery原始碼有看過嗎?請說出jQuery內部判斷資料型別的巧妙方式。
- 字串“1”加上數字1的結果是? (也許是看我前一題答不上來,沉默半天突然問了這個……這是在動態調整難度?)
- ajax的內部原理?
- 你都用過哪些前端框架?為什麼選擇這個框架?
- 你在專案中創新性地解決了哪些難題?
你在專案中都有哪些效能優化的經驗?
jQuery原始碼有看過嗎?請說出你印象最深刻部分的原理。 (還好我一面過後惡補了這方面內容……)
- 你對目前流行的前端框架都有什麼瞭解,有沒有應用經驗? (一面時面試官推薦我多瞭解一下 Vue.js ,我回去也惡補了,二面時便說了一些對Vue.js的理解,二面面試官也說Vue.js是他們常用的,這個資訊很重要)
- 你是從哪些途徑學習前端新知識的? (我說是看文件和大牛部落格,她又問我“你能說出一些知名博主的名字嗎?”,看來平時也是要多留心的)
你在專案中創新性地解決了哪些難題?
閉包的作用,用法。
ES6有用過哪些特性?
給了段程式碼,問輸出什麼。主要是考作用域鏈和this
實現左定寬右撐滿的佈局。盒子模型。要使盒子表現與IE一致該如何?
事件機制,如何繫結事件處理函式。
js非同步模式如何實現?
如何獲取某個DOM節點,節點遍歷方式?
用LESS如何給某些屬性加瀏覽器字首?
. js類的繼承方式,並實現。
- 要實現函式內每隔5秒呼叫自己這個函式,100次以後停止,怎麼辦。
第一個問題是我最不想被問到的問題,一緊張全忘光亂套了,被鄙視;第二個問題其實靜下心來想應該是可以做好的,但是由於第一題的影響,哎還是亂了陣腳。可能面試官也覺得我很low吧。。。= =。。但是可能看我等了這麼久,還是放我去hr面了。
我問的問題:
為什麼不問我別的知識點?比如css之類的?他說css和js是前端的兩個大頭,然後貌似說css他也不太熟。。。??(可能我聽差了吧。。��)
團隊中尤其是新人,一般都做些什麼工作?
用什麼技術框架?
首先介紹下做過的自我感覺最好的專案
我就只能拿槍彈櫃這個說了,只是因為我全程都參與這個專案,最為了解,但是其實說實話它雖然體量還算龐大,用到了好些個相關技術,但是卻不深,感覺並沒有太大說服力。面試官也沒有太多地深入問。所以感覺最好要有一個自己從頭開發的有難度的小專案就好了,若是在github上有star或者fork肯定更加分~
css的margin重疊問題
說實話,之前並沒有系統地瞭解過,只有個大概的映像,答的不好,詳細答案在這裡。
javascript的事件繫結
效能優化問題
這個不太瞭解,沒說
安全性問題
這個不太瞭解,沒說
如果一個頁面打開了之後空白,你會如何定位問題?如果不是網路、伺服器的問題,就是前端問題,該如何定位?
平常用什麼瀏覽器?怎麼除錯的?chrome開發者工具平常都用到了什麼?關於效能的除錯用到了啥?
我說主要是chrome;用chrome的開發者工具;除了效能,我其它的基本都有了��。
關於HTTP,cache怎麼控制的?如果允許快取,一個頁面訪問快取的流程是怎樣的?
我說用cache-control,pragma;
關於專案:php用的什麼版本?nodejs的websocket是自己實現的還是用的元件?如何劃分模組?開發環境是windows還是linux?
這個基本上就照實說了。
用了什麼前端構建工具?
grunt,介紹了用過什麼功能,是否自己搭建。
js中setTimeout的函式執行時間?觸發了setTimeout後會立即執行嗎?
關於前端效能、安全性問題?提到了CSIF
H5的移動端和PC端頁面開發有什麼區別?
window.onload 是什麼時候觸發的?
啊這個問題前兩天才看過T^T…然後不確定,本來想說是在完全載入完成後執行的,結果最後還是答了個錯的答案。。QAQ。。。window.onload與document.ready的區別.
jquery的入口函式寫在哪裡?為什麼?
我說寫在頁面的body結束前,因為這樣頁面都會載入完再執行js程式碼。應該少說了個 頁面的載入不會被js程式碼阻塞 吧。