【面試】三年渣渣前端面試總結

nickyzhang發表於2019-05-24

lz最近剛剛找到工作,一直想找一個機會寫下自己的面試總結,所以趁著空閒的時間就把在面試過程中遇到的一些問題給梳理出來。對自己的知識進行查漏補缺,也希望可以幫助到正在找工作的你,話不多說,我們直接看面試

宣告:本文只是對知識點進行梳理,lz會在關鍵地方給出具體連結,不會給出具體答案,具體的答案需要靠自己去搜尋去總結,

1.HTML&CSS
  • 語義化標籤
  • 冒泡和捕獲
  • 三欄佈局(浮動、定位、flexBFC)
  • 垂直居中、水平居中(這個至少得說出四種實現方式)
  • 盒模型和如何更改盒模型(box-sizing)(當時面我的面試官說我這兩種模型說反了?)
  • css選擇器及優先順序
  • BFC
  • position:inherit、static、relative、fixed、absolute
  • z-index
  • transition、animation、transform

面試題
①:如何使用CSS實現滑鼠滑過一個元素控制另一個元素的顯示與否
②:給你三個巢狀標籤,如何實現中間的點選事件先觸發,然後最裡面一個最後是最外面的觸發

2.JavaScript

①舉個?,在往陣列中插入某一項方法有哪些?答:pushshiftslicesplice,這些API的執行速度是怎麼樣的?這就需要我們知道它們的內部是如何實現的
②求下面程式碼的值,並畫出原型圖解釋原因

var F = new Function()
var obj = new F()
F.prototype.a = 1
obj.prototype.b = 2
obj.a = ???
obj.b = ???
複製程式碼

③介紹幾種原型繼承以及他們的優缺點,請卸車class extend繼承的內部實現,擴充套件如何實現class內的靜態方法
④這一道題開放性很大,需要實現同步非同步以及結合閉包巢狀執行

瀏覽器

面試題
①狀態碼為304時的資料處理過程?
②HTTP為什麼需要三次握手四次揮手

資料結構和演算法

  • 連結串列結構特點
  • 連結串列的插入刪除和雙向連結串列實現以及如何判斷閉環
  • 二叉樹的遞迴和非遞迴實現
  • 求二叉樹的高度和寬度(遞迴和非遞迴實現)
  • 斐波那契數列第幾項以及前幾項的和(遞迴和非遞迴實現),摸這裡
  • 陣列去重,此問題可升級為1、陣列中物件去重2、陣列中物件屬性相同值不同去重
  • 無序陣列第k大數字(分資料量大小討論)
  • 目標數字在陣列中排第幾
  • 求陣列中最大的兩個值
  • 字串匹配([](){}這種型別)(面試題見①)
  • 實現一個EventBus包含onemitonceoff
  • 常見的陣列操作
  • 只出現一次的數字Ⅰ/Ⅱ/Ⅲ
  • 重建二叉樹

①?: (1){} 返回 false , (){} 返回 true ,思路:

let obj = {
    '[': -1,
    ']': 1,
    '(': -2,
    ')': 2,
    '{': -3,
    '}': 3,
}
判斷執行過程中,只要出現了字元不存在或者字元對應的值大於0就返回 false,否則返回 true
複製程式碼

Vue

其他

  1. 效能優化(可以從DOM操作、JS程式碼書寫、webpack懶載入CDN配置資源快取Hash值、HTTP快取以及你在專案中優化的任何點都可以說)
  2. Git操作(工作區、暫存區和版本庫以及各種狀態之間的切換,mergerebase的區別)
  3. webpack(webpack懶載入、CDN配置、資源快取、Hash值等方面)

工程

推薦

暫時先想這麼多吧,以後想到了再更新,大家面試如果在面試中遇到了什麼問題可以留言討論

tips
①:如果面試官提問問題的時候一定不要沒在有聽懂題意就直接回答問題
②:在面試官提問出問題當你把基礎部分都回答過之後,一定要對問題中的一些點進行擴充套件回答,這是你能拿到offer的充分不必要條件謹記謹記謹記

相關文章