無他,唯手熟爾-前端實習面試題篇

Icarus發表於2017-03-19

以下基本是我在面試中遇到的所有問題,給大家做一個參考。除2月13和14日為現場面試以外,其餘均為電話面試。我的本意不是讓大家背答案,所以沒有把面試公司的名字寫出來,只是想給不知道如何準備面試的同學一些啟發。我面的幾家大廠基本不會問框架的,但是很多公司的預期比較單一,比如需要你會哪些技術棧,所以根據對應的公司去準備是最好的,不要盲目看面試題。
作者:Icarus
原文連結:無他,唯手熟爾-前端實習面試題篇

前端部分高頻的問題還是重基礎,如:

  • 對CSS規範的瞭解和CSS3動畫的實現
  • 原型、繼承、閉包、事件的瞭解和應用
  • 跨平臺的瀏覽器相容問題
  • 跨域的實踐和方法
  • 對前端技術的發展是否有了解

2017.02.13

js

手寫類繼承
手寫陣列去重
如何遍歷物件的屬性

new關鍵字的過程
判斷變數型別,如何判斷變數是函式
如何判斷一個變數是陣列
call和apply的作用,區別
手寫jsonp實現,傳送和回撥接收
js實現css的:hover效果
解釋事件代理,事件流模型
資料統計,比ajax更簡單的方法

css

display屬性的值和介紹
響應式佈局的方法,並詳細解釋

box-sizing的屬性值及區別
css3實現動畫
移動端除錯的方法
移動端和PC和微信相容性問題

HTML

有幾種Doctype,Doctype的作用
嚴格模式和混雜模式如何區分,有何意義

其它

gulp-connect原理
為什麼要跨域,跨域是什麼
是否瞭解viewport
unicode,utf8,gbk編碼的瞭解,亂碼的解決
前端效能優化

主觀題

為什麼選擇前端
介紹實習經歷
職業規劃和崗位的match程度
實習時間保證

2017.02.14

一面

手寫once函式,傳入函式引數只執行一次(閉包)
手寫debouce函式
分域名請求圖片的原因和好處

移動端的適配,rem+媒體查詢/meta頭設定
box-sizing解釋
跨域的N種方法
效能優化
css動畫和js動畫的區別
實習經歷介紹

二面

實現拖拽的功能,自己的思路,pc的思路和移動端思路
手寫原生ajax,封裝成類promise
對es6的瞭解
手寫生成10個20-50之間的隨機數,存在陣列中,常見排序方法,陣列亂序方法

對技術選型的思考
click在ios上有300ms延遲,原因及如何解決
linux和伺服器部署
HTTP請求的方式,HEAD方式?
es6的瞭解,let和const的區別
嚴格模式介紹
非同步載入js方法

2017.02.16

一面

自我介紹
專業成績和課程
計算機網路的分層概述
瀏覽器輸入url到完整顯示出頁面經歷的過程,遇到link或者script標籤的表現
專案中遇到的難點和印象深刻的地方
無限載入監聽scroll如何限制頻率
解決檔案快取檔名新增md5戳,如css檔案內的路徑怎麼解決快取
讓你設計一個自動化工具,解決各種檔案和各個檔案之間的依賴關係
setTimeout,setInterval,requestAnimation之間的區別

二面

如何實現元件化,點選載入元件
是否使用過require.js等元件化工具
你覺得自己薄弱的地方在哪,為什麼想要提高這部分能力
效能優化
優化HTTP請求需要全部打包還是拆分,如何拆分?
你的專案經驗是由你主導還是隻是參與
介紹一下專案中遇到的難點和解決辦法
介紹一下你的專業,為什麼會選擇學前端
平時做一些動效比較多還是實現一些複雜互動比較多
從哪些地方獲取前端相關的諮詢

三面

自我介紹
介紹一下你的專案經驗
拆分檔案的大小和個數
js簡單合併還是按需載入、按模組載入
遇到問題如何解決
最近半年技術棧有沒有更新
談談在專案中哪些部分是由你推動並落地的,不侷限技術和產品
你認為自己薄弱的地方,準備怎麼去改進
你學習的方法和過程是怎樣的

2017.02.22

自我介紹
為什麼學前端
介紹代表自己水平的專案
如何監控JS物件屬性變更
JS實現繼承的多種方法
外邊距摺疊
BFC的瞭解和用途
HTTP協議的瞭解,控制快取的部分有哪些
一個圖片url訪問後直接下載怎樣實現
一個圖片列表,一張一張載入,檢測到上一張載入完成後再切換下一張
跨域的方法
formdata的瞭解
認為自己哪方面比較擅長但是沒問到

2017.02.28

自我介紹
側重於CSS還是js
介紹一下HTML的語義化
瞭解無障礙嗎
是否使用過sass/less做一下介紹
是否瞭解CSS原生變數
平時用chrome開發會用到什麼功能,做介紹
介紹一下盒模型,box-sizing屬性
長度單位,em和rem的區別
是否瞭解css動畫
畫一條0.5px的直線
實現一個秒針繞一點轉動的效果,transform-origin
選擇器的優先順序,偽類選擇器的優先順序
偽類和偽元素的對比,應用
對ES6的瞭解
proto 和 prototype的聯絡
如何實現一個私有變數,用getName方法可以訪問,不能直接訪問
setTimeout和setInterval的瞭解,倒數計時使用哪一個

promise的三種狀態
setTimeout和promise的執行順序
對ajax的瞭解,原生實現,XMLHTTPRequest相容性
跨域原因、方法
call,apply,bind
事件委託,addEventListener引數、相容性
DOM事件流模型
div中兩個button,div上事件代理,如何判斷點選的是哪個button
檢測陣列的方法
vue雙向繫結實現原理、父子元件通訊方法
瀏覽器快取的瞭解
HTTP狀態碼

2017.03.01

自我介紹
有沒有github
喜歡寫一些什麼型別的文章
對前後端分離的理解,前端mock資料
gulp和webpack的對比,會自己寫配置檔案嗎
webpack常用到哪些功能
介紹sass
對ES6的瞭解
對css動畫和canvas有了解嗎
css動畫提高效能的方法
實現一個彈窗元件,需要暴露的api和引數
js的垃圾回收機制

2017.03.02

localStorage和Cookie/sessionStorage
對webSocket的瞭解,和ajax輪詢的區別
flex佈局的瞭解
響應式佈局的瞭解,如何實現
垂直居中的方法
你知道box-sizing的哪些屬性值
有哪些偽類、偽元素,有什麼區別,使用時有什麼注意事項,去掉一個屬性偽類就不存在了?
是否瞭解css動畫
transition和animation的區別,是否可暫停
margin和translate的百分比根據什麼計算
width:200px的無高度div,設定padding-top:60%高度是多少
是否瞭解svg
評價一下自己的css和js的能力
陣列有哪些方法
介紹一下原型鏈
是否瞭解偽陣列
瞭解document.ready和window.onload的方法
是否瞭解同源策略
svn和git的區別
是否瞭解git flow
效能優化的方法

2017.03.03

介紹一下px、pt、em
有沒有實現過複雜的動畫
介紹一下box-sizing
說一下對語義化的理解
說一下基本資料型別有哪些
說一些對垃圾回收機制和閉包的瞭解
iframe的缺點
jQuery鏈式呼叫的原理
移動端遇到過的相容性問題?
響應式佈局的方法
接觸過的技術?
介紹一下bootstrap的柵格系統是如何實現的
jQuery的$('xxx')做了什麼事情
原型鏈的介紹
繼承事件類的方法
字串去重的方法
效能優化的問題
原生ajax的介紹,readystate的取值,如何設定傳送和返回值是json格式
自己實現一個事件委託功能

2017.03.03

自我介紹
如何看待前端技術的發展
介紹一下自己對個人發展的期望
如何看待前端社群的更新速度
點選a標籤之後發生的事情
效能優化
是否瞭解cdn壓縮,gzip
是否瞭解SQL,RX.js
在業界有沒有什麼大牛級的偶像,想不想成為其中的一個

2017.03.07

自我介紹
部落格
覺得自己更偏向於css還是js
瞭解flex佈局嗎
js看過的書
如果讓你來講js你會怎麼寫提綱
變數定義,是否瞭解變數提升

function test(a){
  var a = "123";
  var a = function() {};
  // 會呼叫哪個a
}複製程式碼

對後端語言有了解嗎
解釋一下原型鏈,原型鏈末端是什麼
解釋一下閉包
ES6的class和ES3/5有什麼區別
講一下你最有收穫的專案
是怎麼解決遇到的問題的
angular和jQuery的優缺點對比

相關文章