2025年前端面试题汇总

ops/2025/1/22 20:38:00/

JavaScript核心

  1. 异步编程
    • Promise、async/await 的工作原理及应用场景。
    • 如何处理并发请求,使用Promise.all()Promise.race()等方法。
    • 解释事件循环机制,理解微任务(microtask)与宏任务(macrotask)的区别。
  2. 原型链
    • 深入理解JavaScript中的原型继承模型。
    • 举例说明如何通过修改原型对象影响所有实例。
  3. 闭包
    • 定义闭包及其作用,如实现私有变量和函数工厂模式。
    • 分析闭包可能导致内存泄漏的情况。
  4. 类和面向对象编程
    • ES6引入的class语法糖背后的原型链实现。
    • 静态方法、getter/setter、构造函数等特性。
  5. 错误处理
    • 使用try…catch捕获异常,以及finally的作用。
    • 自定义Error对象,创建特定类型的错误信息。

HTML/CSS基础

  • HTML语义化标签
    • <article><section><header><footer>等标签的正确使用场景。
    • 对SEO和可访问性的好处。
  • CSS选择器优先级
    • ID选择器、类选择器、元素选择器之间的权重关系。
    • 继承、层叠规则对样式的最终影响。
  • 响应式设计
    • 使用媒体查询适应不同设备尺寸。
    • 移动端特有的单位如vw、vh的应用。

框架与工具

Vue.js
  • 组件通信
    • 父子组件间的数据传递方式(props、events)。
    • 非父子组件间的沟通策略,例如Vuex状态管理模式。
  • 生命周期钩子
    • 不同阶段触发的钩子函数及其用途。
    • 如何利用这些钩子进行初始化、清理操作。
React.js
  • JSX语法
    • JSX表达式的编写规范,以及它编译成React.createElement的过程。
  • 虚拟DOM
    • React如何通过Diff算法最小化真实DOM更新次数。
    • 键(key)属性的重要性,确保列表项唯一标识。
Webpack/Vite
  • 优化配置
    • Tree shaking移除未使用的代码。
    • Code splitting按需加载模块。
    • 缓存策略提升构建效率。

性能优化

  • 减少重绘与回流
    • 批量执行样式更改,避免频繁触发浏览器布局计算。
    • 使用GPU加速(transform、opacity)代替CPU密集型属性变化。
  • 资源预取与预加载
    • rel="preload"rel="prefetch"的区别及其适用场景。

网络与安全

  • HTTP/2 vs HTTP/1.1
    • 多路复用、头部压缩等新特性带来的性能改进。
  • HTTPS加密过程
    • SSL/TLS握手流程,公钥基础设施(PKI)的基本概念。
  • CSP(Content Security Policy)
    • 设置严格的策略防止XSS攻击。

算法与数据结构

  • 复杂度分析
    • 时间复杂度O()表示法,评估算法效率。
    • 空间复杂度考量,特别是递归调用栈空间消耗。
  • 搜索算法
    • 广度优先搜索(BFS)、深度优先搜索(DFS)的特点及应用。

其他

  • Web API
    • Fetch API替代XMLHttpRequest的优势。
    • Service Worker缓存管理和服务工人消息传递。
  • PWA (Progressive Web Apps)
    • 将网站转换为渐进式Web应用程序所需步骤。
    • 离线支持、推送通知等功能实现。

http://www.ppmy.cn/ops/152272.html

相关文章

工业相机 SDK 二次开发-Halcon 插件

本文介绍了 Halcon 连接相机时插件的使用。通过本套插件可连接海康 的工业相机。 一. 环境配置 1. 拷贝动态库 在 用 户 安 装 MVS 目 录 下 按 照 如 下 路 径 Development\ThirdPartyPlatformAdapter 找到目录为 HalconHDevelop 的文 件夹&#xff0c;根据 Halcon 版本找到对…

14-美妆数据分析

前言 美妆数据分析可以帮助企业更好地理解市场趋势、客户偏好和产品表现 import pandas as pd import numpy as np 一、数据清洗 data pd.read_csv(rC:\Users\B\Desktop\美妆数据.csv,encodinggbk) data.head()data.info()data data.drop_duplicates(inplaceFalse) data.r…

docker运行长期处于activating (start)

当systemctl start docker启动docker卡住长时间无响应&#xff0c;使用systemctl status docker查看docker运行状态发现activating (start) since 二 1998-01-06 00:43:48 CST; 38min ago,这个状态表示启动中&#xff0c;还未启动完成active (running),可以尝试以下操作&#x…

蓝桥杯 单词重排

问题描述 解题思路 这个问题可以通过计算排列数来解决。由于字符串 "LANQIAO" 由7个不同的字母组成&#xff0c;我们可以使用排列公式 P(n,n)n! 来计算&#xff0c;其中 n 是字母的数量。但是&#xff0c;由于字符串中存在重复的字母&#xff0c;我们需要对重复的字…

【Spring Boot】Spring原理:Bean的作用域和生命周期

目录 Spring原理 一. 知识回顾 1.1 回顾Spring IOC1.2 回顾Spring DI1.3 回顾如何获取对象 二. Bean的作用域三. Bean的生命周期 Spring原理 一. 知识回顾 在之前IOC/DI的学习中我们也用到了Bean对象&#xff0c;现在先来回顾一下IOC/DI的知识吧&#xff01; 首先Spring I…

金融场景 PB 级大规模日志平台:中信银行信用卡中心从 Elasticsearch 到 Apache Doris 的先进实践

导读&#xff1a;中信银行信用卡中心每日新增日志数据 140 亿条&#xff08;80TB&#xff09;&#xff0c;全量归档日志量超 40PB&#xff0c;早期基于 Elasticsearch 构建的日志云平台&#xff0c;面临存储成本高、实时写入性能差、文本检索慢以及日志分析能力不足等问题。因此…

使用Docker构建Node.js应用的详细指南

引言 Docker平台允许开发者将应用程序打包并运行为容器。容器是一个在共享操作系统上运行的隔离进程&#xff0c;提供了一种比虚拟机更轻量级的替代方案。尽管容器并不是新事物&#xff0c;但它们提供的好处——包括进程隔离和环境标准化——随着越来越多的开发者使用分布式应…

MySQL表创建分区键

DISTRIBUTED BY (user_id) 是在某些分布式数据库系统中用于定义表分区策略的语法&#xff0c;特别是与 Greenplum、PostgreSQL&#xff08;结合 Citus 扩展&#xff09;或 Apache Hive 等系统相关。它指定了如何根据特定列&#xff08;如 user_id&#xff09;来分布数据到不同的…