前端最新面试题及答案 (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.mzph.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中所有的转换都是延迟的&…