前端常見(jiàn)面試題目

前端基礎(chǔ)知識(shí):
1、css的盒模型(老生常談),BFC的理解,選擇器,層級(jí)上下文,三欄布局多種實(shí)現(xiàn)(position,flex,float等),自適應(yīng)布局rem原理(如何兼容不同手機(jī)dpi),font-size10px如何實(shí)現(xiàn)、移動(dòng)端一像素、媒體查詢等等比較基礎(chǔ)的問(wèn)題,都是知識(shí)點(diǎn)。
2、html方面基本問(wèn)很少,這個(gè)重要程度沒(méi)什么, 也就是一些標(biāo)簽語(yǔ)義化理解,和h5新特性,storage/cookie
3、js這個(gè)是重點(diǎn),會(huì)從基礎(chǔ)去考察。從瀏覽器返回html到渲染出頁(yè)面,再到中間涉及到的優(yōu)化點(diǎn)。
面試題分享
HTML
1、瀏覽器頁(yè)面有哪三層構(gòu)成,分別是什么,作用是什么?
2、HTML5的優(yōu)點(diǎn)與缺點(diǎn)?
3、Doctype作用? 嚴(yán)格模式與混雜模式如何區(qū)分?它們有何意義?
4、HTML5有哪些新特性、移除了哪些元素?
5、你做的網(wǎng)頁(yè)在哪些瀏覽器測(cè)試過(guò),這些瀏覽器的內(nèi)核分別是什么?
6、每個(gè)HTML文件里開(kāi)頭都有個(gè)很重要的東西,Doctype,知道這是干什么的嗎?
7、說(shuō)說(shuō)你對(duì)HTML5認(rèn)識(shí)?(是什么,為什么)
8、對(duì)WEB標(biāo)準(zhǔn)以及W3C的理解與認(rèn)識(shí)?
CSS
1、解釋一下CSS的盒子模型?
2、請(qǐng)你說(shuō)說(shuō)CSS選擇器的類型有哪些,并舉幾個(gè)例子說(shuō)明其用法?
3、請(qǐng)你說(shuō)說(shuō)CSS有什么特殊性?(優(yōu)先級(jí)、計(jì)算特殊值)
4、常見(jiàn)瀏覽器兼容性問(wèn)題與解決方案?
5、列出display的值并說(shuō)明他們的作用?
6、如何居中div, 如何居中一個(gè)浮動(dòng)元素?
7、請(qǐng)列舉幾種清除浮動(dòng)的方法(至少兩種)?
8、block,inline和inlinke-block細(xì)節(jié)對(duì)比?
9、什么叫優(yōu)雅降級(jí)和漸進(jìn)增強(qiáng)?
10、說(shuō)說(shuō)浮動(dòng)元素會(huì)引起的問(wèn)題和你的解決辦法
11、你有哪些性能優(yōu)化的方法?
JavaScript
1、js的各種位置,比如clientHeight,scrollHeight,offsetHeight ,以及scrollTop, offsetTop,clientTop的區(qū)別?
2、js拖拽功能的實(shí)現(xiàn)
3、異步加載js的方法
4、js的防抖與節(jié)流
5、說(shuō)一下閉包
6、說(shuō)說(shuō)你對(duì)作用域鏈的理解
7、JavaScript原型,原型鏈 ? 有什么特點(diǎn)?
8、請(qǐng)解釋什么是事件委托/事件代理
9、Javascript如何實(shí)現(xiàn)繼承?
10、函數(shù)執(zhí)行改變this
11、babel編譯原理
12、函數(shù)柯里化
13、說(shuō)一下類的創(chuàng)建和繼承
14、說(shuō)說(shuō)前端中的事件流
15、如何讓事件先冒泡后捕獲
16、說(shuō)一下圖片的懶加載和預(yù)加載
17、js的new操作符做了哪些事情
18、改變函數(shù)內(nèi)部this指針的指向函數(shù)(bind,apply,call的區(qū)別)
19、Ajax解決瀏覽器緩存問(wèn)題
Vue
1、Vue中 key 值的作用
2、Vue 組件中 data 為什么必須是函數(shù)?
3、vuex的State特性是?
4、介紹一下Vue的響應(yīng)式系統(tǒng)
5、computed與watch的區(qū)別
6、介紹一下Vue的生命周期
7、為什么組件的data必須是一個(gè)函數(shù)
8、組件之間是怎么通信的
9、Vue.cli中怎樣使用自定義的組件?有遇到過(guò)哪些問(wèn)題嗎?
10、Vue如何實(shí)現(xiàn)按需加載配合webpack設(shè)置
11、簡(jiǎn)單描述每個(gè)周期具體適合哪些場(chǎng)景
12、scss是什么?在Vue.cli中的安裝使用步驟是?有哪幾大特性?
13、聊聊你對(duì)Vue.js的template編譯的理解?
14、Vue 路由跳轉(zhuǎn)的幾種方式
15、Vue如何實(shí)現(xiàn)按需加載配合webpack設(shè)置?
16、Vue的路由實(shí)現(xiàn):hash模式和history模式
17、Vue與Angular以及React的區(qū)別?
18、Vue路由的鉤子函數(shù)
19、什么是Vue的計(jì)算屬性?
React
1、介紹一下react
2、React單項(xiàng)數(shù)據(jù)流
3、react生命周期函數(shù)和react組件的生命周期
4、react和Vue的原理,區(qū)別,亮點(diǎn),作用
5、reactJs的組件交流
6、有了解過(guò)react的虛擬DOM嗎,虛擬DOM是怎么對(duì)比的呢
7、項(xiàng)目里用到了react,為什么要選擇react,react有哪些好處
8、怎么獲取真正的dom
9、選擇react的原因
10、react的生命周期函數(shù)
11、setState之后的流程
12、react高階組件知道嗎?
13、React的jsx,函數(shù)式編程
14、react的組件是通過(guò)什么去判斷是否刷新的
15、如何配置React-Router
16、路由的動(dòng)態(tài)加載模塊
17、Redux中間件是什么東西,接受幾個(gè)參數(shù)
18、redux請(qǐng)求中間件如何處理并發(fā)
瀏覽器
1、跨標(biāo)簽頁(yè)通訊
2、瀏覽器架構(gòu)
3、瀏覽器下事件循環(huán)(Event Loop)
4、從輸入 url 到展示的過(guò)程
5、重繪與回流
6、存儲(chǔ)
7、Web Worker
8、V8垃圾回收機(jī)制
9、內(nèi)存泄露
10、reflow(回流)和repaint(重繪)優(yōu)化
11、如何減少重繪和回流?
12、一個(gè)頁(yè)面從輸入 URL 到頁(yè)面加載顯示完成,這個(gè)過(guò)程中都發(fā)生了什么?
13、localStorage 與 sessionStorage 與cookie的區(qū)別總結(jié)
服務(wù)端與網(wǎng)絡(luò)
1、HTTPS和HTTP的區(qū)別
2、HTTP版本
3、從輸入U(xiǎn)RL到頁(yè)面呈現(xiàn)發(fā)生了什么?
4、HTTP緩存
5、緩存位置
6、強(qiáng)緩存
7、協(xié)商緩存
8、緩存的資源在那里
9、用戶行為對(duì)瀏覽器緩存的影響
10、緩存的優(yōu)點(diǎn)
11、不同刷新的請(qǐng)求執(zhí)行過(guò)程
算法與數(shù)據(jù)結(jié)構(gòu)
1、二叉樹(shù)層序遍歷
2、B樹(shù)的特性,B樹(shù)和B+樹(shù)的區(qū)別
3、尾遞歸
4、如何寫一個(gè)大數(shù)階乘?遞歸的方法會(huì)出現(xiàn)什么問(wèn)題?
5、把多維數(shù)組變成一維數(shù)組的方法
6、說(shuō)一下冒泡快排的原理
7、Heap排序方法的原理?復(fù)雜度?
8、幾種常見(jiàn)的排序算法,手寫
9、數(shù)組的去重,盡可能寫出多個(gè)方法
10、如果有一個(gè)大的數(shù)組,都是整型,怎么找出最大的前10個(gè)數(shù)
