当前位置: 首页 > news >正文

Web 前端工程师面试题 + 参考答案

Web 前端工程师面试题 + 参考答案

使用说明

这份题库按初级 -> 中级 -> 高级 顺序整理,适合按岗位级别准备。

喜欢作者就关注一下哈,关注不迷路,可以看更多文章哦

1. 什么是 HTML 语义化?为什么要做语义化?

参考答案:

HTML 语义化是指根据内容的真实含义选择合适的标签,而不是一味使用div 和span

例如:

  • 页头用header
  • 导航用nav
  • 主内容用main
  • 文章内容用article
  • 侧边栏用aside
  • 页脚用footer

这样做的好处主要有三点:

  • 代码结构更清晰,后期维护更容易
  • 搜索引擎更容易理解页面结构,有利于SEO
  • 屏幕阅读器等无障碍工具能更好地解析页面内容

──────────────────────────────────────────────────

2. 块级元素和行内元素有什么区别?

参考答案:

块级元素通常会独占一行,默认宽度会撑满父元素,例如divpul
行内元素不会独占一行,会和其他元素排在同一行,例如spanastrong

主要区别:

  • 块级元素通常可以直接设置宽高
  • 行内元素设置宽高通常不生效
  • 行内元素的上下margin 和padding 表现不如块级元素直观

如果既想同行显示,又想设置宽高,通常会使用display: inline-block

──────────────────────────────────────────────────

3. CSS 盒模型是什么?box-sizing 有什么作用?

参考答案:

CSS 盒模型由四部分组成:

  • content
  • padding
  • border
  • margin

标准盒模型下,元素设置的width 和height 只表示内容区大小。
如果元素还有padding 和border,最终渲染出来的尺寸会更大。

box-sizing 用来控制宽高的计算方式:

  • content-box:默认值,宽高只包含内容区
  • border-box:宽高包含content + padding + border

实际开发中常把所有元素设为border-box,因为这样更容易控制布局,不容易出现宽度超出预期的问题。

──────────────────────────────────────────────────

4. CSS 选择器优先级怎么计算?

参考答案:

CSS 优先级一般可以理解为:

  • !important
  • 行内样式
  • id 选择器
  • class、属性选择器、伪类
  • 标签选择器、伪元素
  • 通配符和继承样式

例如:

#app .title {

  color: red;

}

 

.title {

  color: blue;

}

因为#app .title 的优先级更高,所以最终颜色是红色。

需要注意:

  • 优先级相同时,后写的样式会覆盖前面的样式
  • !important 虽然强,但会让样式维护变难,项目里不建议滥用

──────────────────────────────────────────────────

5. 什么是 BFC?有什么应用场景?

参考答案:

BFC 的全称是Block Formatting Context,可以理解为块级格式化上下文,是页面中的一块独立渲染区域。

它有几个常见特性:

  • 内部元素的布局不会影响外部
  • 可以包含浮动元素
  • 可以阻止相邻块级元素的margin 重叠

常见触发方式:

  • overflow: hidden/auto
  • display: flow-root
  • position: absolute/fixed
  • float 不为none

常见应用场景:

  • 清除浮动
  • 防止父子或兄弟元素的外边距重叠
  • 实现两栏布局时避免文字环绕浮动元素

──────────────────────────────────────────────────

6.varletconst 有什么区别?

参考答案:

三者都可以用来声明变量,但区别很明显:

  • var 是函数作用域,存在变量提升,可以重复声明
  • let 是块级作用域,也会提升,但存在暂时性死区,不能重复声明
  • const 也是块级作用域,声明时必须赋值,之后不能重新赋值

例如:

  • var 在if 代码块外仍然可访问
  • let 和const 只在当前块内有效

需要注意,const 如果保存的是对象或数组,不能改的是变量指向,但对象内部属性仍然可以修改。

──────────────────────────────────────────────────

7.== 和=== 有什么区别?

参考答案:

== 在比较时会进行隐式类型转换,=== 不会,它会同时比较类型和值。

例如:

  • 1 == '1' 的结果是true
  • 1 === '1' 的结果是false

开发中通常更推荐使用===,因为它判断更严格,能避免很多由类型转换带来的隐藏问题。

──────────────────────────────────────────────────

8. 什么是原型和原型链?

参考答案:

在 JavaScript 中,每个对象都可以关联到另一个对象,这个被关联的对象就是它的原型。
当我们访问一个对象的属性时,如果对象本身没有这个属性,就会沿着原型向上查找,这条查找路径就叫原型链。

例如:

  • 实例对象可以访问构造函数原型上的方法
  • 如果原型上也没有,就继续往上找,直到Object.prototype

原型链是 JavaScript 实现继承和属性复用的基础。

──────────────────────────────────────────────────

9. 什么是闭包?闭包有什么应用场景?

参考答案:

闭包本质上是函数和它的词法作用域组合在一起形成的结构。
简单说,就是一个函数即使在外部作用域执行,仍然可以访问定义时所在作用域中的变量。

常见应用场景:

  • 封装私有变量
  • 函数柯里化
  • 防抖、节流
  • 回调中保存上下文数据

需要注意:

  • 闭包用得不当可能导致不再需要的变量一直被引用
  • 在一些场景下可能引发内存占用增加

──────────────────────────────────────────────────

10.this 的指向怎么判断?

参考答案:

this 不是在定义时确定的,而是在调用时确定的。

常见规则:

  • 普通函数直接调用时,非严格模式下指向全局对象,严格模式下是undefined
  • 作为对象方法调用时,指向调用它的对象
  • callapplybind 可以显式指定this
  • 使用new 调用构造函数时,this 指向新创建的实例
  • 箭头函数没有自己的this,它会继承外层作用域的this

面试中最好强调一句:判断this,关键看“函数是怎么调用的”。

──────────────────────────────────────────────────

11.localStorage

http://www.jsqmd.com/news/684359/

相关文章:

  • ArcMap处理不规则遥感影像:从按掩膜提取到镶嵌,手把手教你搞定行政区划裁剪与拼接
  • 2.大模型微调难点与挑战
  • 用Python+Floyd算法复刻2000年数模B题:从钢管运输到物流成本最优化的实战解析
  • FLUX.1-dev-fp8-dit文生图惊艳案例分享:FP8模型生成的中国风/赛博朋克/蒸汽波风格图
  • 前端开发者构建AI应用实战指南
  • 《JAVA面经实录》- 权限管理框面试题
  • 如何用AutoLegalityMod插件3分钟生成100%合法的宝可梦数据
  • 【Excel提效 No.011】一句话搞定多工作表纵向合并
  • Layui表格怎么实现在表头的右侧添加一个自定义配置图标
  • 支付机构必看:网联平台RCMP前置系统实战解析,从映射额度到结算的完整避坑指南
  • Python与OpenAI API实战:快速构建AI对话服务
  • 2026届学术党必备的六大AI学术神器解析与推荐
  • 算法训练营第七天 | 环形链表 扭捏快指针步步退,霸道慢指针狠狠追
  • Peer-Link断了怎么办?一次生产环境M-LAG故障排查与恢复实录
  • Layui如何实现表格内部的图片点击后进入相册轮播模式
  • Android 本地音乐播放(读取系统媒体库 + MediaPlayer)
  • 从5G回看通信原理:那些课本上的概念(OFDM、多址、衰落)到底是怎么用的?
  • 双非跨考哈工大计算机,我是如何用CSAPP和真题啃下854专业课的?
  • 从原理到防御:深入解析泛洪攻击(Flood Attack)的攻防博弈
  • nli-MiniLM2-L6-H768在教育行业落地:学生问答自动归类与知识点匹配案例
  • 当AI的“记忆仓库“塞不下时,它们是怎么聪明腾地方的?
  • Python类方法怎么定义@classmethod与@staticmethod区别
  • 终极指南:5分钟掌握LunaTranslator游戏翻译工具
  • MongoDB安装
  • 大语言模型推理能力全解析:从情感分析到主题识别,一行提示搞定NLP任务(附代码)
  • Docker集群网络配置失效全复盘(跨主机通信中断的7个隐性根源)
  • Python 字典高效合并与重复键自定义处理指南
  • mysql如何配置审计日志输出_mysql audit_log_format设置
  • RoCE测试(笔记)
  • 基于CNN的情感识别模型实战:从数据增强到部署优化