摘要:面試的公司分別是阿里網(wǎng)易滴滴今日頭條有贊挖財滬江餓了么攜程喜馬拉雅兌吧微醫(yī)寺庫寶寶樹??低暷⒐浇挚峒覙钒俜贮c和海風教育。
(關(guān)注福利,關(guān)注本公眾號回復[資料]領(lǐng)取優(yōu)質(zhì)前端視頻,包括Vue、React、Node源碼和實戰(zhàn)、面試指導)
本人于7-8月開始準備面試,過五關(guān)斬六將,最終抱得網(wǎng)易歸,深深感受到高級前端面試的套路。以下是自己整理的面試題匯總,不敢藏私,統(tǒng)統(tǒng)貢獻出來。
面試的公司分別是:阿里、網(wǎng)易、滴滴、今日頭條、有贊、挖財、滬江、餓了么、攜程、喜馬拉雅、兌吧、微醫(yī)、寺庫、寶寶樹、??低?、蘑菇街、酷家樂、百分點和海風教育。
以下是面試題匯總,后續(xù)階段會持續(xù)深入更新面試題解,共勉!
PS:文末有GitHub鏈接,歡迎各位Star,歡迎加高級前端進階群一起學習(文末)。
阿里使用過的koa2中間件
koa-body原理
介紹自己寫過的中間件
有沒有涉及到Cluster
介紹pm2
master掛了的話pm2怎么處理
如何和MySQL進行通信
React聲明周期及自己的理解
如何配置React-Router
路由的動態(tài)加載模塊
服務(wù)端渲染SSR
介紹路由的history
介紹Redux數(shù)據(jù)流的流程
Redux如何實現(xiàn)多個組件之間的通信,多個組件使用相同狀態(tài)如何進行管理
多個組件之間如何拆分各自的state,每塊小的組件有自己的狀態(tài),它們之間還有一些公共的狀態(tài)需要維護,如何思考這塊
使用過的Redux中間件
如何解決跨域的問題
常見Http請求頭
移動端適配1px的問題
介紹flex布局
其他css方式設(shè)置垂直居中
居中為什么要使用transform(為什么不使用marginLeft/Top)
[x] 使用過webpack里面哪些plugin和loader
[x] webpack里面的插件是怎么實現(xiàn)的
dev-server是怎么跑起來
項目優(yōu)化
抽取公共文件是怎么配置的
項目中如何處理安全問題
怎么實現(xiàn)this對象的深拷貝
網(wǎng)易介紹redux,主要解決什么問題
文件上傳如何做斷點續(xù)傳
表單可以跨域嗎
promise、async有什么區(qū)別
搜索請求如何處理(防抖)
搜索請求中文如何請求
介紹觀察者模式
介紹中介者模式
觀察者和訂閱-發(fā)布的區(qū)別,各自用在哪里
介紹react優(yōu)化
介紹http2.0
通過什么做到并發(fā)請求
http1.1時如何復用tcp連接
介紹service worker
介紹css3中position:sticky
redux請求中間件如何處理并發(fā)
介紹Promise,異常捕獲
介紹position屬性包括CSS3新增
瀏覽器事件流向
介紹事件代理以及優(yōu)缺點
React組件中怎么做事件代理
React組件事件代理的原理
介紹this各種情況
前端怎么控制管理路由
使用路由時出現(xiàn)問題如何解決
React怎么做數(shù)據(jù)的檢查和變化
滴滴react-router怎么實現(xiàn)路由切換
標簽默認事件禁掉之后做了什么才實現(xiàn)了跳轉(zhuǎn)
React層面的性能優(yōu)化
整個前端性能提升大致分幾類
[x] import { Button } from "antd" ,打包的時候只打包button,分模塊加載,是怎么做到的
[x] 使用import時,webpack對node_modules里的依賴會做什么
JS異步解決方案的發(fā)展歷程以及優(yōu)缺點
Http報文的請求會有幾個部分
cookie放哪里,cookie能做的事情和存在的價值
cookie和token都存放在header里面,為什么只劫持前者
cookie和session有哪些方面的區(qū)別
React中Dom結(jié)構(gòu)發(fā)生變化后內(nèi)部經(jīng)歷了哪些變化
React掛載的時候有3個組件,textComponent、composeComponent、domComponent,區(qū)別和關(guān)系,Dom結(jié)構(gòu)發(fā)生變化時怎么區(qū)分data的變化,怎么更新,更新怎么調(diào)度,如果更新的時候還有其他任務(wù)存在怎么處理
key主要是解決哪一類的問題,為什么不建議用索引index(重繪)
Redux中異步的請求怎么處理
Redux中間件是什么東西,接受幾個參數(shù)(兩端的柯里化函數(shù))
柯里化函數(shù)兩端的參數(shù)具體是什么東西
中間件是怎么拿到store和action,然后怎么處理
state是怎么注入到組件的,從reducer到組件經(jīng)歷了什么樣的過程
koa中response.send、response.rounded、response.json發(fā)生了什么事,瀏覽器為什么能識別到它是一個json結(jié)構(gòu)或是html
koa-bodyparser怎么來解析request
[x] webpack整個生命周期,loader和plugin有什么區(qū)別
[x] 介紹AST(Abstract Syntax Tree)抽象語法樹
安卓Activity之間數(shù)據(jù)是怎么傳遞的
安卓4.0到6.0過程中WebView對js兼容性的變化
WebView和原生是如何通信
跨域怎么解決,有沒有使用過Apache等方案
今日頭條對async、await的理解,內(nèi)部原理
介紹下Promise,內(nèi)部實現(xiàn)
[x] 清除浮動
[x] 定位問題(絕對定位、相對定位等)
從輸入URL到頁面加載全過程
tcp3次握手
tcp屬于哪一層(1 物理層 -> 2 數(shù)據(jù)鏈路層 -> 3 網(wǎng)絡(luò)層(ip)-> 4 傳輸層(tcp) -> 5 應(yīng)用層(http))
redux的設(shè)計思想
接入redux的過程
綁定connect的過程
connect原理
[x] webpack介紹
== 和 ===的區(qū)別,什么情況下用相等==
bind、call、apply的區(qū)別
動畫的了解
介紹下原型鏈(解決的是繼承問題嗎)
對跨域的了解
有贊Linux 754 介紹
介紹冒泡排序,選擇排序,冒泡排序如何優(yōu)化
transform動畫和直接使用left、top改變位置有什么優(yōu)缺點
如何判斷鏈表是否有環(huán)
介紹二叉搜索樹的特點
介紹暫時性死區(qū)
ES6中的map和原生的對象有什么區(qū)別
觀察者和發(fā)布-訂閱的區(qū)別
react異步渲染的概念,介紹Time Slicing 和 Suspense
16.X聲明周期的改變
16.X中props改變后在哪個生命周期中處理
介紹純函數(shù)
前端性能優(yōu)化
pureComponent和FunctionComponent區(qū)別
介紹JSX
如何做RN在安卓和IOS端的適配
RN為什么能在原生中繪制成原生組件(bundle.js)
介紹虛擬DOM
如何設(shè)計一個localStorage,保證數(shù)據(jù)的實效性
如何設(shè)計Promise.all()
介紹高階組件
sum(2, 3)實現(xiàn)sum(2)(3)的效果
react性能優(yōu)化
兩個對象如何比較
挖財JS的原型
變量作用域鏈
call、apply、bind的區(qū)別
防抖和節(jié)流的區(qū)別
介紹各種異步方案
react生命周期
介紹Fiber
前端性能優(yōu)化
介紹DOM樹對比
react中的key的作用
如何設(shè)計狀態(tài)樹
介紹css,xsrf
http緩存控制
項目中如何應(yīng)用數(shù)據(jù)結(jié)構(gòu)
native提供了什么能力給RN
如何做工程上的優(yōu)化
shouldComponentUpdate是為了解決什么問題
如何解決props層級過深的問題
前端怎么做單元測試
[x] webpack生命周期
[x] webpack打包的整個過程
[x] 常用的plugins
pm2怎么做進程管理,進程掛掉怎么處理
不用pm2怎么做進程管理
滬江介紹下瀏覽器跨域
怎么去解決跨域問題
jsonp方案需要服務(wù)端怎么配合
Ajax發(fā)生跨域要設(shè)置什么(前端)
加上CORS之后從發(fā)起到請求正式成功的過程
xsrf跨域攻擊的安全性問題怎么防范
使用Async會注意哪些東西
Async里面有多個await請求,可以怎么優(yōu)化(請求是否有依賴)
Promise和Async處理失敗的時候有什么區(qū)別
Redux在狀態(tài)管理方面解決了React本身不能解決的問題
Redux有沒有做過封裝
react生命周期,常用的生命周期
對應(yīng)的生命周期做什么事
遇到性能問題一般在哪個生命周期里解決
怎么做性能優(yōu)化(異步加載組件...)
寫react有哪些細節(jié)可以優(yōu)化
React的事件機制(綁定一個事件到一個組件上)
介紹下事件代理,主要解決什么問題
前端開發(fā)中用到哪些設(shè)計模式
React/Redux中哪些功能用到了哪些設(shè)計模式
JS變量類型分為幾種,區(qū)別是什么
JS里垃圾回收機制是什么,常用的是哪種,怎么處理的
一般怎么組織CSS(Webpack)
餓了么小程序里面開頁面最多多少
React子父組件之間如何傳值
Emit事件怎么發(fā),需要引入什么
介紹下React高階組件,和普通組件有什么區(qū)別
一個對象數(shù)組,每個子對象包含一個id和name,React如何渲染出全部的name
在哪個生命周期里寫
其中有幾個name不存在,通過異步接口獲取,如何做
渲染的時候key給什么值,可以使用index嗎,用id好還是index好
[x] webpack如何配sass,需要配哪些loader
[x] 配css需要哪些loader
如何配置把js、css、html多帶帶打包成一個文件
[x] div垂直水平居中(flex、絕對定位)
兩個元素塊,一左一右,中間相距10像素
上下固定,中間滾動布局如何實現(xiàn)
[1, 2, 3, 4, 5]變成[1, 2, 3, a, b, 5]
取數(shù)組的最大值(ES5、ES6)
apply和call的區(qū)別
ES5和ES6有什么區(qū)別
some、every、find、filter、map、forEach有什么區(qū)別
上述數(shù)組隨機取數(shù),每次返回的值都不一樣
如何找0-5的隨機數(shù),95-99呢
頁面上有1萬個button如何綁定事件
如何判斷是button
頁面上生成一萬個button,并且綁定事件,如何做(JS原生操作DOM)
循環(huán)綁定時的index是多少,為什么,怎么解決
頁面上有一個input,還有一個p標簽,改變input后p標簽就跟著變化,如何處理
監(jiān)聽input的哪個事件,在什么時候觸發(fā)
攜程手寫兩道算法題
對React看法,有沒有遇到一些坑
對閉包的看法,為什么要用閉包
手寫數(shù)組去重函數(shù)
手寫數(shù)組扁平化函數(shù)
介紹下Promise的用途和性質(zhì)
Promise和Callback有什么區(qū)別
React生命周期
喜馬拉雅ES6新的特性
介紹Promise
Promise有幾個狀態(tài)
說一下閉包
React的生命周期
componentWillReceiveProps的觸發(fā)條件是什么
React16.3對生命周期的改變
介紹下React的Filber架構(gòu)
畫Filber渲染樹
介紹React高階組件
父子組件之間如何通信
Redux怎么實現(xiàn)屬性傳遞,介紹下原理
React-Router版本號
網(wǎng)站SEO怎么處理
介紹下HTTP狀態(tài)碼
403、301、302是什么
緩存相關(guān)的HTTP請求頭
介紹HTTPS
HTTPS怎么建立安全通道
前端性能優(yōu)化(JS原生和React)
用戶體驗做過什么優(yōu)化
對PWA有什么了解
對安全有什么了解
介紹下數(shù)字簽名的原理
前后端通信使用什么方案
RESTful常用的Method
介紹下跨域
Access-Control-Allow-Origin在服務(wù)端哪里配置
csrf跨站攻擊怎么解決
前端和后端怎么聯(lián)調(diào)
兌吧localStorage和cookie有什么區(qū)別
CSS選擇器有哪些
盒子模型,以及標準情況和IE下的區(qū)別
如何實現(xiàn)高度自適應(yīng)
prototype和——proto——區(qū)別
_construct是什么
new是怎么實現(xiàn)的
promise的精髓,以及優(yōu)缺點
如何實現(xiàn)H5手機端的適配
rem、flex的區(qū)別(root em)
em和px的區(qū)別
React聲明周期
如何去除url中的#號
Redux狀態(tài)管理器和變量掛載到window中有什么區(qū)別
webpack和gulp的優(yōu)缺點
如何實現(xiàn)異步加載
如何實現(xiàn)分模塊打包(多入口)
前端性能優(yōu)化(1js css;2 圖片;3 緩存預加載; 4 SSR; 5 多域名加載;6 負載均衡)
并發(fā)請求資源數(shù)上限(6個)
base64為什么能提升性能,缺點
介紹webp這個圖片文件格式
介紹koa2
Promise如何實現(xiàn)的
異步請求,低版本fetch如何低版本適配
ajax如何處理跨域
CORS如何設(shè)置
jsonp為什么不支持post方法
介紹同源策略
React使用過的一些組件
介紹Immuable
介紹下redux整個流程原理
介紹原型鏈
如何繼承
微醫(yī)介紹JS數(shù)據(jù)類型,基本數(shù)據(jù)類型和引用數(shù)據(jù)類型的區(qū)別
Array是Object類型嗎
數(shù)據(jù)類型分別存在哪里
var a = {name: "前端開發(fā)"}; var b = a; a = null那么b輸出什么
var a = {b: 1} 存放在哪里
var a = {b: {c: 1}}存放在哪里
棧和堆的區(qū)別
垃圾回收時棧和堆的區(qū)別
數(shù)組里面有10萬個數(shù)據(jù),取第一個元素和第10萬個元素的時間相差多少
棧和堆具體怎么存儲
介紹閉包以及閉包為什么沒清除
閉包的使用場景
JS怎么實現(xiàn)異步
異步整個執(zhí)行周期
Promise的三種狀態(tài)
Async/Await怎么實現(xiàn)
Promise和setTimeout執(zhí)行先后的區(qū)別
JS為什么要區(qū)分微任務(wù)和宏任務(wù)
Promise構(gòu)造函數(shù)是同步還是異步執(zhí)行,then呢
發(fā)布-訂閱和觀察者模式的區(qū)別
JS執(zhí)行過程中分為哪些階段
詞法作用域和this的區(qū)別
平常是怎么做繼承
深拷貝和淺拷貝
loadsh深拷貝實現(xiàn)原理
ES6中let塊作用域是怎么實現(xiàn)的
React中setState后發(fā)生了什么
setState為什么默認是異步
setState什么時候是同步的
為什么3大框架出現(xiàn)以后就出現(xiàn)很多native(RN)框架(虛擬DOM)
虛擬DOM主要做了什么
虛擬DOM本身是什么(JS對象)
304是什么
打包時Hash碼是怎么生成的
隨機值存在一樣的情況,如何避免
[x] 使用webpack構(gòu)建時有無做一些自定義操作
[x] webpack做了什么
a,b兩個按鈕,點擊aba,返回順序可能是baa,如何保證是aba(Promise.then)
node接口轉(zhuǎn)發(fā)有無做什么優(yōu)化
node起服務(wù)如何保證穩(wěn)定性,平緩降級,重啟等
RN有沒有做熱加載
RN遇到的兼容性問題
RN如何實現(xiàn)一個原生的組件
RN混原生和原生混RN有什么不同
什么是單頁項目
遇到的復雜業(yè)務(wù)場景
Promise.all實現(xiàn)原理
寺庫介紹Promise的特性,優(yōu)缺點
介紹Redux
RN的原理,為什么可以同時在安卓和IOS端運行
RN如何調(diào)用原生的一些功能
介紹RN的缺點
介紹排序算法和快排原理
堆和棧的區(qū)別
介紹閉包
閉包的核心是什么
網(wǎng)絡(luò)的五層模型
HTTP和HTTPS的區(qū)別
HTTPS的加密過程
介紹SSL和TLS
介紹DNS解析
JS的繼承方法
介紹垃圾回收
cookie的引用為了解決什么問題
cookie和localStorage的區(qū)別
如何解決跨域問題
前端性能優(yōu)化
寶寶樹使用canvas繪圖時如何組織成通用組件
formData和原生的ajax有什么區(qū)別
介紹下表單提交,和formData有什么關(guān)系
介紹redux接入流程
rudux和全局管理有什么區(qū)別(數(shù)據(jù)可控、數(shù)據(jù)響應(yīng))
RN和原生通信
介紹MVP怎么組織
介紹異步方案
promise如何實現(xiàn)then處理
koa2中間件原理
常用的中間件
服務(wù)端怎么做統(tǒng)一的狀態(tài)處理
如何對相對路徑引用進行優(yōu)化
node文件查找優(yōu)先級
npm2和npm3+有什么區(qū)別
??低?/b>knex連接數(shù)據(jù)庫響應(yīng)回調(diào)
介紹異步方案
如何處理異常捕獲
項目如何管理模塊
前端性能優(yōu)化
JS繼承方案
如何判斷一個變量是不是數(shù)組
變量a和b,如何交換
事件委托
多個
類數(shù)組和數(shù)組的區(qū)別
dom的類數(shù)組如何轉(zhuǎn)成數(shù)組
介紹單頁面應(yīng)用和多頁面應(yīng)用
redux狀態(tài)樹的管理
介紹localstorage的API
蘑菇街html語義化的理解
和的區(qū)別
對閉包的理解
工程中閉包使用場景
介紹this和原型
使用原型最大的好處
react設(shè)計思路
為什么虛擬DOM比真實DOM性能好
react常見的通信方式
redux整體的工作流程
redux和全局對象之間的區(qū)別
Redux數(shù)據(jù)回溯設(shè)計思路
單例、工廠、觀察者項目中實際場景
項目中樹的使用場景以及了解
工作收獲
酷家樂react生命周期
react性能優(yōu)化
添加原生事件不移除為什么會內(nèi)存泄露
還有哪些地方會內(nèi)存泄露
setInterval需要注意的點
定時器為什么是不精確的
setTimeout(1)和setTimeout(2)之間的區(qū)別
介紹宏任務(wù)和微任務(wù)
promise里面和then里面執(zhí)行有什么區(qū)別
介紹pureComponet
介紹Function Component
React數(shù)據(jù)流
props和state的區(qū)別
介紹react context
介紹class和ES5的類以及區(qū)別
介紹箭頭函數(shù)和普通函數(shù)的區(qū)別
介紹defineProperty方法,什么時候需要用到
for..in 和 object.keys的區(qū)別
介紹閉包,使用場景
使用閉包特權(quán)函數(shù)的使用場景
get和post有什么區(qū)別
百分點React15/16.x的區(qū)別
重新渲染render會做些什么
哪些方法會觸發(fā)react重新渲染
state和props觸發(fā)更新的生命周期分別有什么區(qū)別
setState是同步還是異步
對無狀態(tài)組件的理解
介紹Redux工作流程
介紹ES6的功能
let、const以及var的區(qū)別
淺拷貝和深拷貝的區(qū)別
介紹箭頭函數(shù)的this
介紹Promise和then
介紹快速排序
算法:前K個最大的元素
海風教育對react看法,它的優(yōu)缺點
使用過程中遇到的問題,如何解決的
react的理念是什么(拿函數(shù)式編程來做頁面渲染)
JS是什么范式語言(面向?qū)ο筮€是函數(shù)式編程)
koa原理,為什么要用koa(express和koa對比)
使用的koa中間件
ES6使用的語法
Promise 和 async/await 和 callback的區(qū)別
Promise有沒有解決異步的問題(promise鏈是真正強大的地方)
Promise和setTimeout的區(qū)別(Event Loop)
進程和線程的區(qū)別(一個node實例就是一個進程,node是單線程,通過事件循環(huán)來實現(xiàn)異步
)
介紹下DFS深度優(yōu)先
介紹下觀察者模式
觀察者模式里面使用的數(shù)據(jù)結(jié)構(gòu)(不具備順序 ,是一個list)
交流 交流本人Github鏈接如下,歡迎各位Star
http://github.com/yygmind/blog
我是木易楊,網(wǎng)易高級前端工程師,跟著我每周重點攻克一個前端面試重難點。接下來讓我?guī)阕哌M高級前端的世界,在進階的路上,共勉!
如果你想加群討論每期面試知識點,公眾號回復[加群]即可
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/98891.html
摘要:獲取的對象范圍方法獲取的是最終應(yīng)用在元素上的所有屬性對象即使沒有代碼,也會把默認的祖宗八代都顯示出來而只能獲取元素屬性中的樣式。因此對于一個光禿禿的元素,方法返回對象中屬性值如果有就是據(jù)我測試不同環(huán)境結(jié)果可能有差異而就是。 花了很長時間整理的前端面試資源,喜歡請大家不要吝嗇star~ 別只收藏,點個贊,點個star再走哈~ 持續(xù)更新中……,可以關(guān)注下github 項目地址 https:...
摘要:前言在阿里和騰訊工作了年,當了年的前端面試官,把期間我和我的同事常問的面試題和答案匯總在我的中。項目地址是我是小蝌蚪,騰訊高級前端工程師,跟著我一起每周攻克幾個前端技術(shù)難點。 前言 在阿里和騰訊工作了6年,當了3年的前端面試官,把期間我和我的同事常問的面試題和答案匯總在我 Github 的 Weekly-FE-Interview 中。希望對大家有所幫助。 如果你在bat面試的時候遇到了...
摘要:前言在阿里和騰訊工作了年,當了年的前端面試官,把期間我和我的同事常問的面試題和答案匯總在我的中。項目地址是我是小蝌蚪,騰訊高級前端工程師,跟著我一起每周攻克幾個前端技術(shù)難點。 前言 在阿里和騰訊工作了6年,當了3年的前端面試官,把期間我和我的同事常問的面試題和答案匯總在我 Github 的 Weekly-FE-Interview 中。希望對大家有所幫助。 如果你在bat面試的時候遇到了...
閱讀 2434·2021-11-18 10:02
閱讀 696·2021-10-08 10:04
閱讀 2271·2021-09-03 10:51
閱讀 3552·2019-08-30 15:44
閱讀 2807·2019-08-29 14:09
閱讀 2474·2019-08-29 12:21
閱讀 2071·2019-08-26 13:45
閱讀 1813·2019-08-26 13:25