前端來自真實大廠的532道面試題(只有題,沒有答案)
答案自己谷歌或百度找。
一、來源背景
面試題是來自微博@牛客網釋出的真實大廠前端面經題目,我一直在收集題目長期一個一個的記錄下來的,可能會有重複,但基本前端的面試大綱和需要掌握的知識都在其中了,面試題僅做學習參考,學習者閱後也要用心鑽研其中的原理,重要知識需要系統學習、透徹學習,形成自己的知識鏈。
二、532道前端真實大廠面試題
express和koa的對比,兩者中介軟體的原理,koa捕獲異常多種情況說一下
你專案裡用到第三方登入涉及的oAuth(JWT)協議的實現原理,以及你本地的實現原理,第三方登入怎麼樣保證安全性
說下快排完整性
react和vue的區別,你開發如何選擇技術棧
express裡面登入的session服務怎麼樣實現分散式服務
vue的理解
vue的雙向資料繫結的原理
vue怎麼樣實現陣列繫結
js的繼承
call和apply的區別
ajax是同步還是非同步,怎麼樣實現同步
ajax實現過程
閉包的作用理解,以及那些地方用過閉包,以及閉包的缺點,如何實現閉包
跨域方法以及怎麼樣實現的與原理
工作中做的專案有什麼亮點
webpack工程構建工具怎麼樣用
陣列去重
快排和冒泡原理
http狀態碼
nodejs瞭解多少
為什麼css樣式初始化,目的是為了什麼
為什麼瀏覽器會產生同源策略
axios有什麼特點
cookie和webstrage的區別以及cookie怎麼樣使用?原生cookie怎麼樣封裝
三次握手
對跨域瞭解嗎。jsonp的限制
瀏覽器那些地方用到了非同步
css彈性佈局,那些地方用到過
position屬性有哪些值,分別有什麼含義
ES6用過嗎,新增了那些東西,你用到過什麼
const和let的區別,可以改變const定義物件某個屬性嗎
箭頭函式,箭頭函式的特點
js的this理解, 如何改變this的指向
cookie有什麼限制
js的事件機制
settimeout的機制
遇到過相容性的問題嗎,要如何處理
專案中使用過構建工具嗎
平時如何學習前端的,最近在看的一本書
記憶體洩露的排除定位和解決方法
垃圾回收機制
websocket實現原理
http狀態碼301 302的區別,304是啥
快取機制,協商協議
定時器setTimeout的執行機制
事件迴圈機制 eventloop
非同步es5 es6 es7分別怎麼樣解決
js的繼承的實現方法
清除浮動的方法
常見佈局的方法
從輸入一個url到瀏覽器頁面展示都經歷了哪些過程
new生成了一個物件的過程(核心return this)
請簡單說明什麼是事件冒泡和事件捕獲以及事件委託
實現一個兩邊寬度固定中間自適應的三列布局,聖盃佈局,雙飛燕
flex佈局有沒有了解
請簡述一下js原型鏈
es6有了解嗎,請簡單說一下promise機制,非同步的承諾機制,順勢說一下解決回撥地獄的問題
手寫一下深拷貝,答案提示:JSON.parse(JSON.stringify(obj)) 用JSON實現深拷貝
== 和 === 的卻別,,typeof null的結果是什麼
同步和非同步的執行順序
get和post的請求區別
什麼情況算是跨域,如何解決跨域問題
一個有序的陣列如何進行查詢操作
手寫一個快速排序
事件委託理解,原理,好處,應用場景
前端框架用過什麼?
vue和react的區別
vue的原理
閉包
let和var的區別,let的產生背景?
定寬定高,如何垂直居中,那不定寬定高呢?
https的請求過程
程式碼規範
專案中遇到過什麼難點,如何解決的
尾遞迴問題
電腦裡有很多大小不一樣的照片,我現在要複製到U盤上,但是U盤容量固定,讓你寫一個程式,挑選一組照片,讓U盤的剩餘空間最小。
後端會哪些語言
講下如何負載均衡
cookie和session的區別和聯絡
nodejs是單執行緒還是多執行緒的,為什麼能去開很多非同步請求去訪問其他介面
一般你是如何操作資料庫的?會哪些資料庫
mysql的底層引擎,釋出
mysql語言寫的如何,怎麼樣判斷sql語句的效能?如何優化?
如何去除陣列中的重複的項?
遍歷陣列處理用for迴圈還有什麼方法嗎
瀏覽器出於安全考慮有?(同源策略)
登入原理
讓我設計一個頁面,選擇男或女,搜尋出相對性
傳送請求有哪些?
web的安全問題?
自我介紹
JS如何計算瀏覽器的渲染時間的
瀏覽器的快取
var的變數提升底層原理是什麼?
event loop講講
JS的回收機制說一下
陣列常用的方法有哪些
websock的底層原理講講
你的聊天室專案,如果資料傳輸出錯了怎麼辦?
現在有一大段文字,如何在頁面中設定一個視窗滾動播出這段檔案(輪播),輪播圖如何解決卡頓問題,有手寫過輪播圖你,原理是什麼
垂直水平居中的方式
實現三欄佈局,中間自適應有幾種方法
演算法:給你一個無序數字陣列,裡面是隨機的書,並給出一個目標值,求這個陣列的兩個數,這個數的和等於目標值,要求這兩個數並給出下標,你能想到最優的辦法是什麼嗎(提示:快排,雙指標)
演算法:給一個無序的陣列,讓我分割成m組,這個m組裡和最大的一組是所有可能的分割情況最小的(二分答案法)
webpack的原理
proto 和prototype分別是什麼
原型鏈原理
在原型鏈上Object再往上是什麼
new和Object.create的區別
哪種情況下__proto__和prototype的指向是同一個?
typeof array null undefined NaN分別是什麼
把undefined和null轉成Number分別是什麼
如何判斷是否為陣列?(instanceOf和constructor可以,但是有原型鏈斷裂的風險,Object.toString.call()最穩定)
instanceOf和constructor的區別
原型鏈斷裂了以後的結果是什麼
如果讓你實現一個promise怎麼樣實現
如何學前端的,看了哪些書
部落格寫了多少篇
你的技術亮點在哪裡
寫一下實現合理化
你對三大框架的理解是什麼
前端效能理解,優化有哪些
nodejs瞭解多少
你遇到的最有難度的技術問題是什麼
redux原理講講
瞭解web移動開發嗎,移動端適配方案有哪些
你有Native開發經驗嗎,講下Android如何呼叫頁面的資源
行內元素和塊級元素有哪些,img屬於什麼元素
margin坍塌
BFC原理
寫一下清除浮動
寫一下不知道寬高元素垂直水平居中方法
寫一下節點的增刪改
如何獲取元素的父節點和兄弟節點
JS如何獲得使用者來源(navigator.userAgent)
跨域方法說一下
jsonp的原理是什麼,處理script標籤還可以通過什麼實現?(靜態資源標籤)
原型鏈說一下
談談對原型鏈繼承
前端快取
給你一個亂序陣列,你怎麼樣排序
你的專案有什麼亮點
你的檔案上傳方案是什麼
寫一個方法提取一下search裡面的引數
寫一個API實現insertAfter
CSS3哪些用的比較多
CSS動畫會嗎,怎麼樣用CSS實現一個loading效果
如何處理CSS相容問題
webpack有個外掛可以解決css相容性問題你知道嗎(postcss-loader)
ES6新特性說說
ES6的代理是什麼let和var的區別講講
箭頭函式和ES5和this的指向區別講講
前端安全這塊瞭解多少
寫一個API,實現jQuery的$(selector)選擇器,要求相容IE6
瀏覽器是如何實現通過你的程式碼去找到指定的元素的
用JS模擬一個雙向連結串列
前端工程化思想
模組化思想
你為什麼選擇前端
cookie,session,localStorage和sessionStorage的區別
Nodejs的執行緒管理
JS設計模式有哪些
跨域的方法有哪些
說說bind,apply,call的區別以及bind的實現
演算法:反轉二叉樹以及時間複雜度
連結串列找環
react的virtual DOM和Diff演算法
React的生命週期
Vue的生命週期
boostrap的底層原理
圖片壓縮的原理
如何處理高併發的情況下,使用者順序問題
說一下web安全,xss,csrf防範csrf流程,舉例子
session+cookie的登入機制
token香港,瀏覽器快取
vue雙向繫結原理,vue-loader做了什麼
webpack的外掛大致流程
程式設計題:給出一個字串(“obj.a”),返回物件屬性obj.a,類似eval的效果
前端路由會不會發請求
畫布濡染有了解嗎
前端監控,pm2,如果我伺服器掛了,如何快速發現並且定位錯誤
pm2除了監控還能幹什麼,如何實現
express中介軟體如何實現
瞭解TCP嗎,資料結構簡單介紹一下以及你的想法
webpack專案太大了怎麼辦
深拷貝
如果彈出的選單位置過於貼近邊框,如何調整這個元素的位置
計算50個人至少有2個生日相同的概率
一個升序陣列,求兩個元素的和為一個指定數
vue的生命週期
vuex的狀態管理的原理是什麼
如何在瀏覽器端和原生端的程式碼複用,講到weex又簡單講了它的原理
跨域如何解決
前端效能優化問題
csrf攻擊原理以及防禦手段
平衡二叉樹
如何在上億規模的資料中找到最大的一個數
最近看過的技術文章和一遍非技術文章(考察表達能力,和主動學習新知識的習慣)
演算法題:二叉樹層序遍歷
JS的全排列
get和post的區別
301和302的區別
如何避免301跳轉https
tcp建立連線三次握手的區別
作業系統程序和執行緒的區別
執行緒的哪些資源共享,哪些資源不共享
設計模式有哪些
Linux命令用的多嗎,怎麼樣進行程序間通訊
kill指令瞭解過嗎
如何畫一個三角形
CSS中對溢位的處理
CSS選擇器有哪些,優先順序呢?
ES6中用過什麼
promise的狀態有哪些
講講JS的閉包
你有用到express嗎
express和koa2的區別
講講JS的語言特性嗎
最近在學啥
專案用到JAVA,反射來講
你用過什麼資料庫
MySQL裡面的索引用過嗎
B+樹瞭解過嗎
mongoDB有哪些特點
實現一個兩列等高佈局,思路
清除浮動的方法
如何讓一個元素消失
重排和重繪
HTTP狀態碼
講講304
瀏覽器快取機制
強快取,協商快取什麼時候用哪個
如何判斷一個數組
你說到typeof,能不能加一個限制條件typeof只能判斷是object,可以判斷一下是否擁有陣列的方法
JS的如何實現倒計時,為什麼不準,校正方式
JS實現跨域
React的特性
nodejs的時間方法講講看
nodejs的特性,適合處理什麼場景
IO多路複用
前端優化
實現一個ajax,相容
如何有一個很多的列表,像頭條的新聞列表,使用者看得多了,列表越來越大,怎麼樣處理,思考一下
如果有這樣的場景:一個模組A作為輸出,BCD等擴充套件模組可以在A做更改後展示A的原來內容或者駕駛CSS後的內容,想想思路
同一個網站,在上海開啟慢,在北京開啟快,怎麼樣分析原因,(DNS解析和CDN)
vue react jquery比較,有測試過效能嗎
對大前端的理解,前端會發展怎麼樣
演算法:兩個排序好的陣列,怎麼樣找他的中位數
React虛擬DOM,生命週期
react父子通訊
nodejs如何require一個包
es6和es5的區別
Nodejs載入原生的包與自己定義的包路徑如何查詢
HTTP2.0的優勢
flex彈性佈局裂解,移動端適配方案有哪些
頁面快取
頁面效能優化
css效能優化,就動畫效果,如何從js,cs角度減少迴流?
webpack的plugin和loader的區別
es5如何轉為es5-babel
瞭解webpack如何打敗
原型基礎
BFC
原型鏈與作用域鏈
jQuery的原始碼看過沒
移動端開發經驗
css會嗎
怎麼樣學前端
遇到問題如何解決
正則如何將一個數千分化表示
js設計模式知道哪些,單例詳細說
函數語言程式設計-柯里化
es6的變數定義和es5的區別
JS事件流
七層網路協議,每層幹嘛的
tcp三次握手,四次揮手
排序演算法有哪些,時間複雜度,選擇排序怎麼樣搞
資料結構有哪些,紅黑樹和二叉樹的區別,二叉搜尋樹與二叉平衡樹
專案經驗
樹資料多少非常多怎麼樣辦(懶載入)
頁面優化方法
設計模式
cookie和session的卻別
如果現在重新做這個專案,有什麼想優化的
多長時間開始獨立做前端,這段時間是如何學習的
學習生涯最失敗的事情是什麼,怎麼樣走出來的
如何看待競爭
專案裡最難的事情,如何克服
職業規範是怎麼樣的
是獨生子女嗎
別人對你的專案認可度,專案做的怎麼樣
block元素和inline元素的區別
position有哪些,特性
css選擇器有哪些
es5和es6:let,const打包後如何變-塊級作用域
JS基本資料型別
作用域鏈
遞迴
react生命週期
react通訊機制
js事件流
redux
flex彈性佈局
this
promise如何從then轉為catch的
介紹你做過的專案
promise函式
es6模組新特性
瀏覽器記憶體洩露,閉包記憶體洩露如何解決
怎麼樣讓頁面載入更快
相容過IE的方法
快取
會pc換還是移動端
觀察者模式如何實現
行元素,塊級元素的卻別
css選擇器的優先順序
水平垂直居中佈局
前端效能優化
閉包的概念,平時如何實現
es6的特性以及這些特性如何實現的
事件冒泡,事件捕獲,事件委託的原理,如何實現委託,事件,委託的有點是什麼,事件監聽
輸入URL瀏覽器是如何工作的
requirejs元件化
jQuery和vue的區別
vue的特點
vue的雙向繫結原理
談談js設計模式
如何實現訂閱者發者模式
MVVM實現原理
vue生命週期
vue跨元件通訊實現
vue的props和slot的使用,區別
vuex的原理
詳細說明解決跨域的方式
前端安全(資源列舉,XSS共計,DOS攻擊,CSRF攻擊)
HTTP狀態碼
重排重繪
談談JS的非同步機制
專案中是是如何優化頁面的
如何實現移動端佈局,適配方案
call apply bind的區別
深拷貝的實現
jQuery原理,平時用jQuery都做過什麼
用過webpack嗎,談一下webpack打包
給了一個settimeout程式碼輸出的順序
git命令
Linux命令
JS基礎有幾種
流式佈局
對前端的瞭解和個人規劃
html5的新特性
float和position的區別
如何獲取當前日期
html語義化,好處
計算器
清除浮動
盒子模型
border-box和content-box
css偽元素有哪些
開啟連線到網頁呈現的流程
HTTP請求頭,響應頭裡面有哪些
非同步載入JS
JS原型
看哪些技術網站
覺得自己的不足
cookie實現
cookie長度限制
http狀態碼
301 302
效能優化
一個網頁很多很多頁面,怎麼樣讓使用者體驗好一點
一個專案可能要延期,怎麼樣處理
URL長度限制
快取
什麼時候用local,什麼時候用session和 storage
長連線
有沒有抓過包
有沒有用過代理
DNS
圖片壓縮
gzip
瀏覽器相容
webpack css相容
css效能
垂直居中,水平居中
盒子米線
last-modifined,etg怎麼樣判斷
css動畫優化
401狀態碼
reflow和repaint
應用層協議有哪些
TCP和UDP
有哪些狀態碼
Ajax如何實現的
Ajax返回204算是成功嗎
settimeout非同步
tcp ip分成
vue diff演算法
vue的生命週期
pwa
vue-router不能解決情況和邊界情況
transition生命週期
執行緒和程序的區別
什麼是非同步
promise是如何解析非同步操作的
如果給a,b,c,d四個時間,執行時間分別為1,2,3,4,怎麼樣做才能在abc都在執行完後再執行d,除了使用promise還能使用什麼方法
陣列去重方法
函式節流和函式防抖知道嗎,區別是什麼
TCP和UDP的區別
HTTP1.0和HTTP1.1相關我讓你聽
強快取和協商快取知道嗎
為什麼HTTP1.1中使用Cache-Control代替Expires
HTTP1.1中Etg和f-None-Match哪個權重比較大
排序的幾種方法知道嗎,是如何實現的
棧和佇列有什麼區別,具體的應用場景
hashmap原理
react中props和state的區別
元件怎麼樣拿到redux的資料
給你一個DOM元素,用CSS的方式讓他呈現兩個的想過,只有一個DOM元素
一個數組只有1和2,排序,1在前面,2在後面
js事件模型,捕獲和冒泡,阻止冒泡
preventDefault和stopPropagation的區別
HTTP快取
https
react的事件繫結和原生有什麼區別嗎
一個數組,有很多數字存在2次,只有一個數字寸一次,怎麼樣找出這個數字
關於iframe內部和外部變數的讀取是如何的
前端防連擊throttle和debounce
ES6 generator async/await瞭解嗎
HTTP/2有什麼新特性
雜湊的原理
如何反轉連結串列
二叉搜尋樹的原理
給定兩個文字檔案,找出他們中相同的行都有哪些
對JS單執行緒的理解
頁面共享資料的方法有哪些
amd,cmd規範
使用者頁面開啟很慢,有哪些優化方式
react的虛擬DOM瞭解什麼,這些型別的框架和傳統的jd操作dom的優勢
koa generator能講一下嗎
如何做單側,單側和開發佔比應該是多少
hybrid
v-model引數
mvvm,mvc,mvp區別
cdn
網路安全xss,csfr是什麼,怎麼樣解決安全
https怎麼樣校驗證書有效性
websocket協議,nodejs中有哪些實現了這個協議
TCP/IP體系結構以及每層的主要協議
TCP的三次握手
HTTP各版本比較
資料結構學過什麼
js如何實現一個棧
雜湊表是怎麼樣的結構
說說作業系統的記憶體管理
怎麼樣實現一個伺服器
如何刪除一個dom節點
瀏覽器如何渲染頁面的
GitHub的專案問
看過什麼書
你是如何理解HTML語義化的
HTML的黑鑽模型有哪些構成的,盒子模型有哪些,預設是哪些
盒子模型有沒有辦法把寬度設定為包含padding
浮動元素有沒有什麼特性
清除浮動的所有方法
ji基本資料型別
typeof去判斷資料型別返回值有哪些
說說事件代理利用的是什麼原理
阻止冒泡的函式是什麼
cookie有什麼特徵
加入訪問A.com存進了一個cookie,在另外一個頁面用ajax向A的域名發請求會攜帶cookie嗎
cookie的其他解決方案
localStorage儲存資料格式是什麼
怎麼樣把一個數組存進localSorage
storage有哪些儲存方法
html5有哪些新的特性
假設兩臺電腦之間同步畫板如何實現
promise的兩個方法,具體實現
es6用的多的有哪些
箭頭函式
如果一個頁面做辛夷花,從哪些方面考察,從哪些地方優化
vue開發模式和jQuery模式有哪些不同,有哪些優缺點
假設一個object A裡面的值n為1,怎麼樣知道n改變了,有事件繫結嗎
react是如何實現資料繫結的
給數字加千位分隔符
HTTP1 SPDY HTTP2的對比
webkit核心渲染頁面過程
簡單介紹一下backbone
react首次渲染過程
redux和vuex的區別
瞭解過weex嗎
typescript和es6的區別
知道xss嗎,介紹一下,如何避免
跨域方式
如何理解html語義化
瀏覽器如何處理未知的的tab
html5有什麼新的tag,canvas…
nodejs的優勢,用過nodejs的哪些模組
預約系統如何解決高併發的問題
kut如何優化react的diff,有去提pr嗎,為什麼
簡單說一下ICP UDP
Socks5代理是如何實現的,讀過協議嗎
http狀態碼,307是什麼,401和403的區別
酸酸是如何實現穿牆的
如何實現檔案上傳的功能
垂直居中的實現
react和vue的區別
介紹一下盒子模型
實現css動畫有哪些
jsonp如何實現,過程
知道哪些http狀態碼
200和304實現快取的區別
localstorage和cookie的區別,如何設定cookie
表單提交和ajax的區別
calc屬性
symbol
事件監聽
常見的請求方式
tcp和http的區別
css的定位屬性,怎麼樣定位的
情景題:給你一個ul列表,找到點選的li物件,把點選到的物件的字串翻轉,講出思路並且寫出程式碼
只能用獲取到物件的屬性
小程式的生命週期
小程式的Onlaunch週期不支援同步獲取資訊之後再執行到下一個生命週期
你怎麼樣維持使用者登入狀態的
給你一顆樹,如何找到其公共的父節點
你最榮耀的事情
你怎麼樣知道我們公司的,為什麼來我們公司
rem,px,em的區別
協同開發需要注意什麼