分享最近前端面試遇到的一些問題

前情提要(分享個人情況,可以直接跳過)

先說一下我的個人情況,我是2026屆的,目前是在找前端實習。 3月初,從3月3日開始在Boss上投簡歷。

分享我的個人故事,不想看可以直接滑到下面,

接下來講述以周為單位

第一周

在周四和周五分別約到了一場面試。

周四面試官問我都是關于vue2的八股文,然后我沒怎么看,回答的很糟糕,10分鐘左右就結束了,他最后問我有沒有什么問題,我當時非常down,感覺世界都灰暗了,什么都沒有問。沒想到他下午竟然又約了二面,問的全是關于項目的,項目沒什么亮點,我認為回答的也一般。

周五這次面試既有八股文也有項目,八股文比較簡單,就是html,css,JavaScript之類的,很基礎,后來關于項目就問了我一點,你做項目讓你印象最深的,我就很簡單說了一點,后來就沒繼續問項目了。

第一周真的很狼狽,我發現自己八股文,項目都很糟糕,兩天時間,我針對自己的問題,做了初步的改正。

第二周

我還有一個最大的問題就是和別人交流總是有點緊張,然后這周我就積極約面試,每天把BOSS上面的打招呼次數都用完,

周二-周五每天都有一場面試,接下來就是在面試中發現問題,解決問題。 這一周就是動力滿滿,一面試就暴露問題,面試完我就復盤總結,自己哪方面需要改變,一直都是發現問題,解決問題,過得比較充實。

這一周面完,感覺自己經驗已經積累夠了,我就打算下周投一些中廠之類的,因為我其實不太甘心自己在一個小廠的,所以就打算繼續投。

第三周

這一周就是投的比較佛系,而且投的都是中大廠,也在一些官網投。因為學校不讓實習的原因,我個人也沒什么動力了,感覺有offer也走不了,就比較又懈怠了,這周沒怎么學,因為個人是任務驅動型的,就是有什么需要解決,我才會行動,否則就比較擺爛。

現在一周已經過去了,回復我的人寥寥無幾,基本沒什么水花,只有在周四有一場面試,然后這個面試就結合項目來提問一些八股文,就回答的一般。他還問了我一個八股文,讓我做一道題(現在想我真是太老實了,當時應該直接上網搜!!!!!)

服了,CSDN新開發的一個編輯模式真不太好用,剛一個撤銷,把我的一部分記錄給弄丟了,重寫!!!!

回歸正題,說一些我遇到的問題

http和請求方面的

1.http的狀態碼

回答2xx-5xx的,他額外了提問3xx方面的

2xx - 成功狀態碼 200 3xx - 重定向狀態碼。301,資源永久移動到新位置 302 臨時移動到新位置 304資源未修改,可以使用緩存
4xx - 客戶端錯誤狀態碼 403服務器拒絕請求,客戶端沒有訪問權限。 404 請求資源不存在 5xx - 服務器錯誤狀態碼 500服務器內部錯誤,無法完成請求。503 服務器暫時不可用(通常由于過載或維護)

2.get和post區別,get是否可以提交數據,post是否可以請求數據。post是否可以在路徑后面拼接變量。

答案是都可以。

GET:1. 用于從服務器獲取資源。例如加載網頁、查詢信息等。2. 數據附加在 URL 后面,長度限制。3.可以進行提交數據,但是數據會暴露在URL里面,不安全,而且有長度限制。4.默認緩存

POST:1.用于向服務器提交數據。通常用于提交表單、上傳文件、修改數據等。2.數據通過請求體(Request Body)傳遞,不會顯示在 URL 中,沒有長度限制。3.post可以獲取數據。4.不會默認緩存。

3.如果一個頁面中多個請求,如何區分這些請求

使用promise.all

4.一個頁面中請求A和請求B完成之后,在發生請求C,如何實現?他說讓自己實現,不用已經給的一些語法之類的。

Promise.all?把A,B完成之后去執行C 2.async/await?讓A,B先執行,然后執行C,await會暫停當前代碼,只有前面執行完才執行后面 3.通過一個計數器來記錄請求A和請求B的完成狀態,當兩個請求都完成后,再發起請求C。

5.瀏覽器本地存儲方式,區別

localStorage,sessionStorage,cookie,indexedDB(這個當時沒有答出來,面試官補充了)

6.你怎么解決跨域,什么是跨域,proxy可以實現跨域原理

協議域名和端口只要有一個不一樣就是跨域, 瀏覽器會檢測到跨域,而不是服務器。 如何解決:1. jsonp script的src屬性向后端發送請求,后端把數據放到callback回調函數中返回。

2.cors跨域資源共享,后端配置目標服務器,設置響應頭 access-control-allow-origin設置為允許跨域的源。

3. proxy代理,在vue里面webpack.config.js的devserve屬性,設置路徑,以什么開頭匹配規則。設置目標服務器地址,和是否開啟代理,和重寫路徑。這里原理就是:服務器代替瀏覽器去請求目標接口,從而繞過瀏覽器的同源策略。

7.你是否封裝過axios,說一下

css

1.說一下盒子模型

普通盒子模型和怪異盒子模型

2.解釋一下BFC。

bfc塊級格式上下文是css一個渲染機制,有一套獨屬于自己的渲染規則(bfc區域不會與浮動相重疊),所以他會形成一個相對外界完全獨立的空間,讓內部的子元素不會影響外部的元素。

觸發他的條件:根元素(html),浮動元素,display:inline-block/flex,overflow:hidden/atuo/scroll,position:absolute/fixed。

場景:

1.防止margin重疊(設置一個元素為bfc)

2.清除內部浮動,防止父元素高度塌陷(元素設置浮動,他會脫離正常的文檔流,導致父元素無法正確計算高度,通過給父元素設置bfc,讓他可以包含內部浮動的元素。

3.自適應多欄布局(因為bfc區域不會和浮動元素重疊,左右兩個元素,一個元素設置浮動,給他固定大小,bfc元素高度固定,寬度自適應)

3.定位有哪幾種

static/absolute/relative/fixed

然后面試官又繼續提問relative和absolute區別。

Relative元素相對于其正常位置進行偏移,使用?topbottomleftright?調整位置,不影響其他元素布局。

Absolute元素相對于最近的已定位祖先元素(非?static)進行定位,若無則相對于?<html>。脫離文檔流,不影響其他元素。

4.響應式布局如何實現?

讓網站能夠根據不同設備的屏幕尺寸(比如PC,平板和手機)來自動調整布局和設計。

場景:

1.媒體查詢(根據媒體查詢,為不同的屏幕尺寸設置不同的樣式)@media screen and (min-width:1000px){}@media screen (min-width:500px) and (max-width:1000px){}

2.使用相對單位(百分比,em,rem)定義布局的寬高,從而讓頁面可以根據屏幕尺寸自動調整,實現自適應。

3.flex布局 注意為了適應移動端meta設置viewport 優點:可以兼容不同設備。缺點:兼容設備工作量大,效率低。

這里回答給自己埋了一個雷點,面試官又繼續問rem,我其實知道,但當時搞混淆rem和em了。 em(相對于當前自己的大小,如果沒有就是父元素字體大小),rem(相當于根元素html字體大小)

5..元素水平垂直居中的方法

flex /positon+transform/position+margin

6.說一下重繪和重排的區別

重繪:當元素的外觀發生變化(如顏色、背景、邊框等),但不影響布局時,瀏覽器會重新繪制元素。

重排:當元素的幾何屬性發生變化(如尺寸、位置、布局等),瀏覽器需要重新計算元素的布局,并重新構建渲染樹。

js

1.說一下事件循環,接下來又給我了一道題(這里其實考到了異步任務的宏任務和微任務)

同步任務在主線程進行,放入棧中。異步任務不進入主線程,進入隊列。同步任務順序執行,只有執行棧中的同步任務都執行完成了,系統才會把任務隊列的異步任務,放入執行棧中執行,如此循環,直到所有任務執行完畢。

console.log('A');
setTimeout(() => console.log('B'), 0);
Promise.resolve().then(() => console.log('C'));
console.log('D');A-D-C-B

2.說一下原型鏈,接下來給我一道題(這里主要靠考我的就是Object.setPrototypeOf這個方法,他改變了原型)

function Person(name) {this.name = name;
}Person.prototype.sayName = function () {console.log(this.name);
};Person.prototype.type = "human"; const p1 = new Person("Alice");
const p2 = new Person("Bob");Object.setPrototypeOf(p1, { sayName() { console.log("Changed!"); } });p1.sayName(); // 輸出?changed
p2.sayName(); // ?bobconsole.log(p1.type); // ?undefinded
console.log(p2.type); // ?humanconsole.log(p1.__proto__ === Person.prototype); // ?false
console.log(p2.__proto__ === Person.prototype); // ?true

3.解釋一下閉包。說一下閉包的場景

閉包是指一個內部函數引用的外部變量。具體來說就是函數的嵌套,一個函數里面嵌套了另一個函數,內部函數調用外部函數的變量,內部函數在外部函數外面調用。

作用:創建私有變量,防止變量被污染。回調函數。函數柯里化。

缺點:內存泄露,保留對外部變量的引用,可能會導致內存無法釋放,這樣還會占用更多內存。

4.你在項目中常用到的數組方法

增刪改查:push unshift pop shift splice指定位置添加或刪除 splice(1,2)在1的位置刪除兩個 修改 concat slice join 查找:indexOf includes 遍歷 forEach map filter reduce find

5.你在項目中常用到的字符串方法

查找:indexof includes 修改:concat slice split replace

ES6

1.let,const,var區別

2.說一下promise

3.箭頭函數和普通函數區別

4.了解map嗎,說一下map

vue2

1.v-if和v-show的區別

v-if本質通過添加和刪除dom節點,v-show本質通過display:none控制隱藏

2.組件間通信的方式

父子通信。1.props,父親給兒子傳遞數據,子通過props接收。 2.自定義事件$emit。子$emit觸發自定義事件,事件名和參數,父親通過綁定監聽器獲取子傳遞的數據。3.ref。父親在使用子組件時候給子組件綁定ref,通過ref獲取數據this.$ref.

兄弟通信,通過創建一個全局事件總線eventbus。一個組件通過$emit觸發自定義事件傳遞參數,另一個組件通過$on監聽自定義事件。

祖孫。祖先通過provide傳遞值,孫子通過inject接受值。

vuex可以實現任意組件間通信

3.生命周期,created和mounted區別

beforecreated/created/beforemounted/mounted/beforeupdate/updated/beforedestroy/destoryed

created時候,vue實例創建完成,data,method,computed初始化完成,但DOM未生成 mounted,組件模板渲染未真實的DOM

4.父組件里面有一個子組件,他們如何加載生命周期鉤子

父親beforecreate/created/beforemount/—>子beforecreate/created/beforemount/mounted/—>父親mounted

5.routes和router區別

routes (路由)是路由的靜態配置,定義了 URL 路徑與組件的映射關系。路由對象包含:path、component,children。

router (路由器)是 Vue Router的實例,用于管理路由的跳轉、監聽 URL 變化以及渲染對應的組件。它通過?new VueRouter()?創建,并接收?routes?作為配置。

6.如果父組件接受子組件傳遞過來的值是否可以修改,原理

不可以,數據單向流動。

7.如果給vue2的對象新增一個屬性,是否能監聽到,怎么讓他可以監聽到

不可以,vue.set

8.如果我發現了indexof這個方法在控制臺報錯怎么辦?

我說可以把這個方法替換成其他的,但是他說工作量大,

通過在Object的原型鏈上補充一個indexof這個方法,要不然就使用webpack。

9.vue3有哪些新特性

1.compostion api

2.更小的體積,支持tree-shaking

3.響應式系統重構,proxy代替了vue2的Object.dinfineproperty,遞歸遍歷對象的屬性,開銷大,無法監聽新增或刪除的屬性(vue.set.vue.delelte)proxy監聽整個對象,不需要遞歸 遍歷

4.虛擬dom的優化,渲染速度更快

5.多根節點。

屬于給自己埋雷了,面試官又問怎么重寫了虛擬dom

vue2 基于 Snabbdom 庫,每次渲染都會對比靜態節點。vue3 不依賴第三方庫,優化后diff算法,支持patch flag,通過在編譯階段標記動態節點,只對比這些標記的節點,避免重復對比。

10.vue3中ref和reactive區別

ref適用于基本數據類型,比如string,number,通過value訪問。 內部通過reactive實現響應式。對于基本數據類型,會把他包裝成一個對象, 通過value訪問。 解構后仍然保持響應式

reactive適用于對象或者數組,直接訪問和修改屬性。 內部通過proxy實現響應式,直接監聽對象的變化。 直接訪問對象的屬性 解構后不是響應式。’如果需要解構對象,可以使用?toRefs?保持響應性(包裹結構的對象)

11.vue3中的reactive整個替換會失去響應式,怎么辦

可以通過逐個替換屬性。推薦使用?Object.assign 可以通過reactive包裹新對象,這個替換就可以 對于頻繁需要替換的對象,通過ref包裹這個對象,然后替換不會失去響應式。

12.說一下vuex常用的一些屬性,mutions和actons的區別

13.你是否封裝過組件,說一下

其他:

1.開始基本上都是讓做個自我介紹(可以好好想一個,然后固定話術)

2.面試完之后,面試官都會問,你有什么想要問(我一般這個時候會問公司的一些情況,比如前端多少人,準備招多少人,公司具體開發方向之類的,剛開始我會問他我表現怎么樣,有什么問題,但很多面試官感覺是出于禮貌,基本都會說,你表現的很好,沒什么問題,也有面試官說了幾個問題。幾場面試下來,我感覺讓他們給我提建議還是比較困難的,后來我就不怎么問這個了。)

3.基本都會問你在項目中有什么難度,項目中什么讓你印象比較深的(可以提前想好自己項目的點,自己怎么解決的,還是固定一套話術)

4.面試官基本都是比較友好的,你回答問題不會也沒什么大不了,他們不會打也不會罵你,語氣一直比較溫和,反而最后還會回答你的一些問題,所以說不要害怕面試。

暫時先到這里,后續有問題再補充

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/898753.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/898753.shtml
英文地址,請注明出處:http://en.pswp.cn/news/898753.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

rip 協議詳細介紹

以下是關于 RIP&#xff08;Routing Information Protocol&#xff0c;路由信息協議&#xff09; 的詳細介紹&#xff0c;涵蓋其工作原理、版本演進、配置方法、優缺點及實際應用場景。 1. RIP 協議概述 類型&#xff1a;動態路由協議&#xff0c;基于距離矢量算法&#xff08…

scrapy入門(深入)

Scrapy框架簡介 Scrapy是:由Python語言開發的一個快速、高層次的屏幕抓取和web抓取框架&#xff0c;用于抓取web站點并從頁面中提取結構化的數據&#xff0c;只需要實現少量的代碼&#xff0c;就能夠快速的抓取。 新建項目 (scrapy startproject xxx)&#xff1a;新建一個新的…

KiLog2MaximumIncrement的由來和KiMaximumIncrementReciprocal的由來

第一部分&#xff1a;KiLog2MaximumIncrement的由來 i 1; j KeMaximumIncrement; while ((1UI64<<i) < KeMaximumIncrement) { i; } KiLog2MaximumIncrement i; 2^17131072 2^18262144 i18KiLog2MaximumIncrement 中…

數據結構-ArrayList

文章目錄 1. 線性表2. 順序表3. ArrayList4. ArrayList的問題以及思考4.2 增容的性能消耗問題4.3 空間浪費問題 1. 線性表 線性表&#xff08;Linear List&#xff09;是n個具有相同特性的數據元素的有限序列。線性表是一種在實際中廣泛使用的數據結構&#xff0c;常見線性表&…

FastGPT 社區版快速部署指南

產品簡介 FastGPT 是基于大語言模型的智能知識庫系統&#xff0c;提供以下核心能力&#xff1a; ? 開箱即用 - 內置數據預處理、多模型對接、權限管理 ? 可視化編排 - 通過 Flow 工作流實現復雜問答邏輯設計 ? 多場景適配 - 支持客服機器人/知識檢索/數據分析等場景 &…

【css酷炫效果】純CSS實現科技感網格背景

【css酷炫效果】純CSS實現科技感網格背景 緣創作背景html結構css樣式完整代碼基礎版進階版(3D光線掃描版) 效果圖 想直接拿走的老板&#xff0c;鏈接放在這里&#xff1a;上傳后更新 緣 創作隨緣&#xff0c;不定時更新。 創作背景 剛看到csdn出活動了&#xff0c;趕時間&a…

Android BLE 權限管理

前言 android 權限一直是比較活躍的 在藍牙權限這一塊又分新版和舊版 新版權限 android.Manifest.permission.BLUETOOTH_SCAN, android.Manifest.permission.BLUETOOTH_ADVERTISE, android.Manifest.permission.BLUETOOTH_CONNECT舊版權限如9.0以下 Manifest.permission.A…

vue3:十一、主頁面布局(左側菜單折疊展開設置)

一、實現效果 二、基本實現 1、菜單容器增加展開收縮方法 在菜單容器中開啟這個方法&#xff0c;值設置為一個變量 :collapseiscollapse 2、定義菜單收縮與否的變量 在js中初始化是否收縮的變量&#xff0c;初始值為不收縮(也就是展開) //左側菜單展開與收縮 const iscolla…

Chapter 4-15. Troubleshooting Congestion in Fibre Channel Fabrics

show zone member: Shows the name of the zone to which a device belongs to. This command can be used to find the victims of a culprit device or vice versa. 顯示設備所屬的區域名稱。該命令可用于查找罪魁禍首設備的受害者,反之亦然。 show zone active: Shows the…

使用 JDBC 插入數據并獲取自動生成的主鍵(如 MySQL 的 AUTO_INCREMENT 或 Oracle 的序列) 的完整示例代碼,包含詳細注釋

以下是使用 JDBC 插入數據并獲取自動生成的主鍵&#xff08;如 MySQL 的 AUTO_INCREMENT 或 Oracle 的序列&#xff09; 的完整示例代碼&#xff0c;包含詳細注釋&#xff1a; import java.sql.*;public class GeneratedKeysExample {// 數據庫連接參數private static final St…

網絡爬蟲【爬蟲庫request】

我叫不三不四&#xff0c;很高興見到大家&#xff0c;歡迎一起學習交流和進步 今天來講一講爬蟲 Requests是Python的一個很實用的HTTP客戶端庫&#xff0c;完全滿足如今網絡爬蟲的需求。與Urllib對比&#xff0c;Requests不僅具備Urllib的全部功能&#xff1b;在開發使用上&…

MTKAndroid12 解決SystemUI下拉框中,長按WIFI圖標會導致崩潰問題

解決SystemUI下拉框中&#xff0c;長按WIFI圖標會導致崩潰問題 文章目錄 場景參考資料修改文件解決方案日志源碼分析 總結 場景 在部分產品中偶發性發現&#xff0c; SystemUI下拉框下拉后長按WIFI圖標會導致崩潰問題&#xff0c;有時候是截屏、點擊Home 按鍵后&#xff0c;長…

第三十一篇 數據倉庫(DW)與商業智能(BI)架構設計與實踐指南

目錄 一、DW/BI架構核心理論與選型策略1.1 主流架構模式對比&#xff08;1&#xff09;Kimball維度建模架構&#xff08;2&#xff09;Inmon企業工廠架構&#xff08;3&#xff09;混合架構 二、架構設計方法論與實施步驟2.1 維度建模實戰指南&#xff08;1&#xff09;模型選擇…

XSS基礎靶場練習

目錄 1. 準備靶場 2. PASS 1. Level 1&#xff1a;無過濾 源碼&#xff1a; 2. level2&#xff1a;轉HTML實體 htmlspecialchars簡介&#xff1a; 源碼 PASS 3. level3:轉HTML深入 源碼&#xff1a; PASS 4. level4:過濾<> 源碼&#xff1a; PASS: 5. level5:過濾on 源碼…

2025年3月AI搜索發展動態與趨勢分析:從技術革新到生態重構

025年3月AI搜索發展動態與趨勢分析&#xff1a;從技術革新到生態重構 一、行業動態&#xff1a;巨頭布局與技術升級 谷歌推出“AI模式”&#xff0c;重新定義搜索體驗 谷歌上線全新“AI模式”&#xff0c;集成多模態交互與實時數據能力&#xff0c;用戶可通過文本、圖片或語音…

熔斷降級(Sentinel解決)

問題概述 在微服務架構中一定要預防微服務雪崩問題&#xff0c;微服務雪崩問題就是指在微服務架構中&#xff0c;當一個服務出現故障時&#xff0c;由于服務之間的依賴關系&#xff0c;故障可能會傳播到其他服務&#xff0c;從而導致了大規模的服務失敗&#xff0c;系統無法正…

Qt高分屏自適應

一.設置默認 DPI 感知 Windows 上的桌面應用程序可以在不同的 DPI 感知模式下運行。 這些模式可實現不同的 DPI 縮放行為,并且可以使用不同的坐標空間。 有關 DPI 感知的詳細信息,請參閱在 Windows 上開發高 DPI 桌面應用程序。 請務必顯式為進程設置默認 DPI 感知模式,以避…

TPCTF 2025 web 復現

文章目錄 baby layoutsafe layoutSafe Layout Revengesupersqli baby layout 在index.js文件中&#xff0c;看到了有使用DOMPurify庫來防止XSS操作 在package.json里可以看到版本是3.2.4,關于3.2.3是有繞過策略的。它會把script標簽清除掉&#xff0c;去看bot可以看到flag是放…

Agent Team 多智能體系統解析

引言 在人工智能技術高速發展的今天&#xff0c;"多智能體協作系統"&#xff08;Agent Team&#xff09;正成為突破效率瓶頸的關鍵技術。與傳統的單體AI不同&#xff0c;這種由多個專業化智能體組成的協同網絡&#xff0c;通過分工協作和動態調整&#xff0c;展現出…

【前端 vue 或者麥克風,智能語音識別和播放功能】

前端 vue 或者麥克風&#xff0c;智能語音識別和播放功能 1. 終端安裝 npm install recordrtc2.引入 import RecordRTC from recordrtc3.html&#xff08;根據自己業務更改&#xff09; <div class"Page"><el-form ref"mainFormRef" class&qu…