前端最新面試題及答案 (2025)

前端最新面試題及答案 (2025)

JavaScript 核心

1. ES6+ 新特性

問題: 請解釋 ES6 中 let/const 與 var 的區別,以及箭頭函數的特點。

答案:

  • let/const vs var:

  • 作用域: let/const 是塊級作用域,var 是函數作用域

  • 變量提升: var會提升變量,let/const不會(有暫時性死區)

  • 重復聲明: var允許重復聲明,let/const不允許

  • const聲明必須初始化且不能重新賦值(對象屬性可修改)

  • 箭頭函數:

  • 語法更簡潔

  • 沒有自己的this,繼承外層this值

  • 不能作為構造函數使用(new)

  • 沒有arguments對象,可用rest參數替代

2. Promise與異步編程

問題: Promise.all、Promise.race、Promise.allSettled有什么區別?

答案:

  • Promise.all:
    所有promise都成功時返回結果數組;任何一個失敗立即reject
  • Promise.race:
    第一個settled的promise決定結果(無論成功失敗)
  • Promise.allSettled:
    等待所有promise完成(無論成功失敗),返回每個的結果狀態數組
// Promise.allSettled示例  
Promise.allSettled([promise1, promise2]).then(results => {  
results.forEach(result => {  
if(result.status === 'fulfilled') {  
console.log('成功:', result.value);  
} else {  
console.log('失敗:', result.reason);  
}  
});  
});  

React

1. React Hooks

問題: useEffect和useLayoutEffect有什么區別?請給出使用場景示例。

答案:

useEffectuseLayoutEffect
執行時機DOM更新后異步執行DOM更新前同步執行
使用場景API請求、訂閱等DOM測量、同步DOM操作
// useLayoutEffect示例:測量DOM元素尺寸  
function MeasureExample() {  
const [size, setSize] = useState({});  
const ref = useRef();  useLayoutEffect(() => {  
setSize({  
width: ref.current.offsetWidth,  
height: ref.current.offsetHeight  
});  
}, []);  return <div ref={ref}>Size: {JSON.stringify(size)}</div>;  
}  

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

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

相關文章

傳統輪椅逆襲!RDK + 激光雷達如何重塑出行體驗?

為滿足特殊群體智能化出行需求&#xff0c;攻克傳統輪椅技術短板&#xff0c;本項目研發了一款智能輪椅。該輪椅借助攝像頭與激光雷達&#xff0c;精準感知環境、檢測障礙物&#xff1b;融合激光 SLAM 技術和互聯網地圖&#xff0c;實現室內外無縫導航與自主避障&#xff1b;提…

go-中間件的使用

中間件介紹 Gin框架允許開發者在處理請求的過程中加入用戶自己的鉤子(Hook)函數這個鉤子函數就是中間件&#xff0c;中間件適合處理一些公共的業務邏輯比如登錄認證&#xff0c;權限校驗&#xff0c;數據分頁&#xff0c;記錄日志&#xff0c;耗時統計 1.定義全局中間件 pac…

【Linux】動靜態庫鏈接原理

&#x1f4dd;前言&#xff1a; 這篇文章我們來講講Linux——動靜態庫鏈接原理 &#x1f3ac;個人簡介&#xff1a;努力學習ing &#x1f4cb;個人專欄&#xff1a;Linux &#x1f380;CSDN主頁 愚潤求學 &#x1f304;其他專欄&#xff1a;C學習筆記&#xff0c;C語言入門基礎…

第八節第三部分:認識枚舉、枚舉的作用和應用場景

認識枚舉 枚舉的概述 枚舉的特點 枚舉的應用場景 代碼&#xff1a; 代碼一&#xff1a;認識枚舉 A&#xff08;枚舉&#xff09; package com.d6_enum;public enum A {//注意&#xff1a;枚舉類的第一行必須羅列的是枚舉對象的名字X,Y,Z;private String name;public String…

Android framework 中間件開發(二)

上篇文章中我們講述了怎么去開發中間件 Android framework 中間件開發(一) 這篇我們講一下怎么打包中間件給外部應用使用 目錄 1.新建項目 2.編寫jar包代碼 3.打包jar包 4.使用jar包 我們可以直接將系統編譯出來的framework的jar包拿出來直接用,但是為了安全起見,防止用戶調用…

FC7300 IO 無法正常輸出高低電平問題排查

現象&#xff1a;Port、Dio配置正常的情況下&#xff0c;IO寫或者翻轉函數正常執行后&#xff0c;IO電平未按照預期切換電平。 排查&#xff1a; 第一步&#xff1a;檢查PORTx_PCRy寄存器值&#xff1a; DWP&#xff1a; 域寫保護&#xff1a;此字段指示允許哪個內核或 DMA 寫…

7 個正則化算法完整總結

哈嘍&#xff01;我是我不是小upper&#xff5e;之前和大家聊過各類算法的優缺點&#xff0c;還有回歸算法的總結&#xff0c;今天咱們來深入聊聊正則化算法&#xff01;這可是解決機器學習里 “過擬合” 難題的關鍵技術 —— 想象一下&#xff0c;模型就像個死記硬背的學生&am…

如何有效的開展接口自動化測試?

&#x1f345; 點擊文末小卡片&#xff0c;免費獲取軟件測試全套資料&#xff0c;資料在手&#xff0c;漲薪更快 一、簡介 接口自動化測試是指使用自動化測試工具和腳本對軟件系統中的接口進行測試的過程。其目的是在軟件開發過程中&#xff0c;通過對接口的自動化測試來提高測…

我設計的一個安全的 web 系統用戶密碼管理流程

作為一名有多年經驗的前端&#xff0c;在剛開始學習web后端的時候&#xff0c;就對如何設計一個安全的 web 系統用戶密碼管理流程有很多疑問。之前自己也實踐過幾種方法&#xff0c;但一直覺得不是十分安全。 我們知道&#xff0c;用戶在注冊或登錄界面填寫的密碼是明文的&…

煉丹學習筆記3---ubuntu2004部署運行openpcdet記錄

前言 環境 cuda 11.3 python 3.8 ubuntu2004 一、cuda環境檢測 ylhy:~/code_ws/OpenPCDet/tools$ nvcc -V nvcc: NVIDIA (R) Cuda compiler driver Copyright (c) 2005-2021 NVIDIA Corporation Built on Sun_Mar_21_19:15:46_PDT_2021 Cuda compilation tools, release 11.3…

在 Linux 系統中過濾文件中的字符串

在 Linux 系統中過濾文件中的字符串&#xff0c;可以使用多種命令行工具實現。以下是幾種常見方法及詳細說明&#xff1a; 一、使用 grep 命令&#xff08;最常用&#xff09; grep 是 Linux 中最強大的文本搜索工具&#xff0c;支持正則表達式。 基礎語法&#xff1a; grep…

基于PXIE 總線架構的Kintex UltraScale 系列FPGA 高性能數據預處理板卡

基于PXIE 總線架構的Kintex UltraScale 系列FPGA 高性能數據預處理板卡 一款基于3U PXIE 總線架構的高性能數據預處理FMC 載板&#xff0c;板卡具有1 個FMC&#xff08;HPC&#xff09;接口&#xff0c;1 個X8 GTH 背板互聯接口&#xff0c;可以實現1 路PCIe x8。板卡采用Xili…

Java 使用 PDFBox 提取 PDF 文本并統計關鍵詞出現次數(附Demo)

目錄 前言1. 基本知識2. 在線URL2.1 英文2.2 混合 3. 實戰 前言 爬蟲神器&#xff0c;無代碼爬取&#xff0c;就來&#xff1a;bright.cn Java基本知識&#xff1a; java框架 零基礎從入門到精通的學習路線 附開源項目面經等&#xff08;超全&#xff09;【Java項目】實戰CRUD…

Vue百日學習計劃Day16-18天詳細計劃-Gemini版

重要提示&#xff1a; 番茄時鐘&#xff1a; 每個番茄鐘為25分鐘學習&#xff0c;之后休息5分鐘。每完成4個番茄鐘&#xff0c;進行一次15-30分鐘的長休息。動手實踐&#xff1a; DOM 操作和事件處理的理解高度依賴于實際編碼。請務必在瀏覽器中創建 HTML 頁面&#xff0c;并配…

SearchClassUtil

路徑掃描工具SearchClassUtil&#xff0c;用于掃描指定包&#xff08;XXXX&#xff09;下的所有.class文件&#xff0c;并將它們的全限定類名&#xff08;如tomcat.SearchClassUtil&#xff09;收集到列表中返回。該工具使用遞歸文件遍歷和反射機制&#xff0c;是實現 Spring 框…

云服務器的運用自如

云服務器的運用自如&#xff1a;從基礎到高階的實戰指南&#xff08;2025版&#xff09; 云服務器作為數字化轉型的核心工具&#xff0c;其靈活性和高效性已覆蓋從個人開發者到企業級應用的廣泛場景。以下是基于當前技術趨勢的云服務器深度運用策略&#xff0c;涵蓋核心應用、…

解密企業級大模型智能體Agentic AI 關鍵技術:MCP、A2A、Reasoning LLMs-docker MCP解析

解密企業級大模型智能體Agentic AI 關鍵技術&#xff1a;MCP、A2A、Reasoning LLMs-docker MCP解析 這里面有很重要的原因其中一個很其中一個原因是因為如果你使用docker的方式&#xff0c;你可以在虛擬環境下就類似于這個沙箱的這個機制可以進行隔離。這對于安全&#xff0c;…

快慢指針算法(Floyd 判圈算法)

快慢指針&#xff08;又稱龜兔賽跑算法&#xff09;是一種常用的鏈表操作技巧&#xff0c;通過兩個移動速度不同的指針遍歷鏈表&#xff0c;用于解決鏈表中環檢測、中點查找等問題。以下是其核心應用場景和實現方法&#xff1a; 1. 鏈表環檢測 問題描述&#xff1a; 判斷鏈表中…

獨立開發者利用AI工具快速制作產品MVP

在當今快速發展的科技時代&#xff0c;獨立開發者面臨著前所未有的機遇與挑戰。曾經需要花費數天甚至數周才能完成的產品MVP&#xff08;Minimum Viable Product&#xff0c;最小可行性產品&#xff09;&#xff0c;如今借助強大的AI工具&#xff0c;可以在短短1小時內實現。 …

Spark處理過程-轉換算子和行動算子

&#xff08;一&#xff09;RDD的處理過程 RDD經過一系列的“轉換”操作&#xff0c;每一次轉換都會產生不同的RDD&#xff0c;以供給下一次“轉換”操作使 用&#xff0c;直到最后一個RDD經過“行動”操作才會真正被計算處理。 1.延遲。RDD中所有的轉換都是延遲的&…