1. 程式人生 > >前端來自真實大廠的532道面試題(只有題,沒有答案)

前端來自真實大廠的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的區別

協同開發需要注意什麼