前端面试题大汇总一

前端面试题大汇总

我将为你呈现 300 道前端面试题中的前 150 道,这些题目涵盖了 HTML、CSS、JavaScript、DOM 与 BOM、前端工程化、Vue 框架等多个核心领域,能帮助你全面梳理前端知识体系。

目录

一、HTML 基础(30 题)

本章节涵盖HTML语义化、标签使用、表单处理、HTML5新特性等基础知识

  1. 什么是语义化 HTML?有哪些常用的语义化标签?

  2. HTML5 新增了哪些语义化标签?它们的使用场景分别是什么?

  3. DOCTYPE 的作用是什么?不同 HTML 版本的 DOCTYPE 有何区别?

  4. 简述 HTML 中 src 和 href 的区别,举例说明使用场景。

  5. img 标签的 alt 属性有什么作用?为什么重要?

  6. HTML 中的块级元素和行内元素有哪些区别?如何相互转换?

  7. 简述 label 标签的作用及使用方式。

  8. HTML5 的 localStorage 和 sessionStorage 有什么区别?使用场景分别是什么?

  9. iframe 标签有哪些优缺点?如何解决 iframe 的跨域问题?

  10. HTML 中的 form 表单提交方式有哪些?如何阻止默认提交行为?

  11. HTML5 的 input 标签新增了哪些类型?举例说明其用途。

  12. 简述 HTML 中的 meta 标签的常见属性及作用。

  13. 什么是 SVG?它与 Canvas 有什么区别?

  14. HTML 中的注释方式是什么?注释会被浏览器解析渲染吗?

  15. 简述 HTML 的文档结构,包括 DOCTYPE、html、head、body 的作用。

  16. 什么是 HTML 实体?常见的 HTML 实体有哪些(如空格、小于号)?

  17. HTML 中的 a 标签的 target 属性有哪些取值?分别表示什么含义?

  18. 简述 HTML5 的拖放 API 的基本使用步骤。

  19. HTML 中的 table 标签的基本结构(thead、tbody、tfoot)及作用是什么?

  20. 什么是 ARIA?它在 HTML 中的作用是什么?

  21. HTML 中的 script 标签的 defer 和 async 属性有什么区别?

  22. 简述 HTML 中的 link 标签的 rel 属性的常见取值及作用。

  23. HTML5 中的 video 标签支持哪些视频格式?如何实现视频的自动播放?

  24. 简述 HTML 中的语义化对 SEO 和可访问性的影响。

  25. HTML 中的 div 和 span 标签有什么区别?使用场景分别是什么?

  26. 什么是 HTML 的严格模式和混杂模式?如何触发这两种模式?

  27. HTML5 中的 canvas 标签如何绘制基本图形(如矩形、圆形)?

  28. 简述 HTML 中的 form 表单的 enctype 属性的作用及取值。

  29. HTML 中的 button 标签和 input 标签的 button 类型有什么区别?

  30. 什么是 Web Components?它包含哪些核心技术(如 Custom Elements)?

二、CSS 基础(30 题)

本章节涵盖CSS盒模型、选择器、布局方式、响应式设计等样式相关知识

  1. 简述 CSS 的盒模型(标准盒模型和 IE 盒模型)的区别。

  2. CSS 中如何设置元素的盒模型为标准盒模型或 IE 盒模型?

  3. CSS 选择器有哪些类型?优先级如何计算?

  4. 简述 CSS 中的层叠(Cascade)、继承(Inheritance)和特异性(Specificity)的含义。

  5. CSS 中的 display 属性有哪些常见取值?分别表示什么布局行为?

  6. 如何实现元素的水平居中?请列举至少 3 种方法。

  7. 如何实现元素的垂直居中?请列举至少 3 种方法。

  8. CSS 中的 position 属性有哪些取值?分别有什么特点?

  9. 简述 CSS 中的 float 属性的作用及清除浮动的方法。

  10. CSS 中的 z-index 属性的作用是什么?它的生效条件是什么?

  11. 简述 CSS 中的 Flex 布局的基本概念(容器和项目的属性)。

  12. Flex 布局中如何实现项目的水平均匀分布?如何实现项目的垂直对齐?

  13. CSS 中的 Grid 布局与 Flex 布局有什么区别?使用场景分别是什么?

  14. 简述 CSS 中的响应式布局的实现方式(如媒体查询、rem、vw/vh)。

  15. CSS 中的媒体查询(Media Query)的基本语法及作用是什么?

  16. 什么是 CSS 预处理器(如 Sass、Less)?它们有哪些优势?

  17. CSS 中的变量(–var)如何定义和使用?有什么作用?

  18. 简述 CSS 中的过渡(transition)和动画(animation)的区别及使用场景。

  19. CSS 中如何实现元素的隐藏?display:none 和 visibility:hidden 有什么区别?

  20. CSS 中的 opacity 属性和 rgba () 函数有什么区别?

  21. 简述 CSS 中的 BFC(块级格式化上下文)的概念及触发条件。

  22. BFC 有哪些应用场景(如解决浮动塌陷、margin 重叠)?

  23. CSS 中的选择器 “+”“~”“>” 分别表示什么含义?举例说明。

  24. 简述 CSS 中的伪类(如:hover、:active)和伪元素(如::before、::after)的区别。

  25. CSS 中如何设置元素的背景(背景色、背景图、背景大小、背景位置)?

  26. 简述 CSS 中的字体相关属性(font-family、font-size、font-weight)的使用。

  27. CSS 中的 line-height 属性有什么作用?如何设置行高使其垂直居中?

  28. 什么是 CSS 的重置(Reset)和 - normalize.css?它们的区别是什么?

  29. CSS 中如何实现文字溢出显示省略号(单行和多行)?

  30. 简述 CSS 中的 transform 属性的常见取值(如 translate、scale、rotate)及作用。

三、JavaScript 基础(50 题)

本章节涵盖JS数据类型、作用域、闭包、原型链、异步编程等核心概念

  1. JavaScript 的数据类型有哪些?基本数据类型和引用数据类型的区别是什么?

  2. 如何判断一个变量的数据类型?typeof、instanceof、Object.prototype.toString () 的区别是什么?

  3. 简述 JavaScript 中的变量提升(Hoisting)现象,函数声明和变量声明的提升优先级有何不同?

  4. 什么是作用域?JavaScript 中的作用域类型(全局作用域、函数作用域、块级作用域)有哪些?

  5. 什么是闭包?闭包的形成条件是什么?有哪些应用场景和潜在问题?

  6. 简述 JavaScript 中的 this 关键字的指向规则(全局、函数、对象方法、构造函数、箭头函数)。

  7. 如何改变 this 的指向?call、apply、bind 的区别是什么?

  8. 什么是原型(Prototype)?简述 JavaScript 的原型链机制。

  9. 构造函数、原型对象、实例对象之间的关系是什么?

  10. 什么是继承?JavaScript 中实现继承的方式有哪些(如原型链继承、构造函数继承、组合继承)?

  11. ES6 中的 class 关键字如何实现继承?与 ES5 的继承方式有什么区别?

  12. 简述 JavaScript 中的垃圾回收机制(GC),常见的垃圾回收算法有哪些?

  13. 什么是内存泄漏?JavaScript 中常见的内存泄漏场景有哪些(如未清理的定时器、闭包)?

  14. 简述 JavaScript 中的事件流(捕获阶段、目标阶段、冒泡阶段)的概念。

  15. 如何阻止事件冒泡和事件默认行为?分别使用什么方法?

  16. JavaScript 中的事件委托(事件代理)是什么?有什么优势?如何实现?

  17. 简述 JavaScript 中的异步编程模式,常见的异步方式有哪些(如回调函数、Promise、async/await)?

  18. 什么是 Promise?Promise 的三种状态(pending、fulfilled、rejected)及状态变化规则是什么?

  19. Promise 的 then、catch、finally 方法的作用是什么?它们的返回值是什么?

  20. 如何实现 Promise 的串行和并行执行?(如 Promise.all、Promise.race)

  21. async/await 是什么?它如何简化 Promise 的异步代码?使用时需要注意什么?

  22. 简述 JavaScript 中的定时器(setTimeout、setInterval)的工作原理,它们的精度受哪些因素影响?

  23. 如何清除定时器?setTimeout 和 setInterval 的清除方法有什么区别?

  24. 什么是宏任务(Macro Task)和微任务(Micro Task)?它们的执行顺序是什么?

  25. 常见的宏任务和微任务有哪些?(如 script、setTimeout、Promise.then)

  26. 简述 JavaScript 中的数组的常用方法(如 push、pop、shift、unshift、slice、splice、map、filter)。

  27. 数组的 map、filter、reduce 方法的作用是什么?它们的返回值是什么?举例说明。

  28. 如何实现数组的去重?请列举至少 3 种方法。

  29. 如何实现数组的扁平化(将多维数组转为一维数组)?请列举至少 2 种方法。

  30. 简述 JavaScript 中的对象的常用方法(如 Object.keys、Object.values、Object.assign、Object.freeze)。

  31. 如何实现对象的深拷贝和浅拷贝?它们的区别是什么?

  32. JavaScript 中的字符串的常用方法有哪些(如 indexOf、slice、substring、replace、split)?

  33. 什么是正则表达式?简述正则表达式的常见元字符(如 ^、$、.、*、+)及作用。

  34. 正则表达式的 test 和 exec 方法有什么区别?

  35. 简述 JavaScript 中的类型转换规则(强制转换和隐式转换),如数字转字符串、字符串转数字。

  36. == 和 === 的区别是什么?在什么情况下 == 会返回 true?

  37. 什么是 NaN?如何判断一个值是否为 NaN?

  38. undefined 和 null 的区别是什么?它们的使用场景分别是什么?

  39. 简述 JavaScript 中的函数参数的特性(如 arguments 对象、默认参数、剩余参数)。

  40. 箭头函数与普通函数有什么区别?(如 this 指向、arguments、构造函数)

  41. 什么是立即执行函数(IIFE)?它的作用是什么?

  42. 简述 JavaScript 中的模块化发展(如 CommonJS、AMD、ES6 Module)。

  43. ES6 Module 的 import 和 export 有哪些用法?(如默认导出、命名导出、动态 import)

  44. 什么是防抖(Debounce)和节流(Throttle)?它们的区别是什么?如何实现?

  45. 简述 JavaScript 中的 JSON 对象的常用方法(JSON.parse、JSON.stringify)及注意事项。

  46. 如何判断一个对象是否为空对象(不包含可枚举属性)?

  47. 简述 JavaScript 中的 for 循环的几种形式(for、for…in、for…of、forEach)及区别。

  48. 什么是柯里化(Currying)?它的作用是什么?如何实现函数柯里化?

  49. 简述 JavaScript 中的生成器函数(Generator)的概念及使用方式(yield、next 方法)。

  50. 什么是 Proxy 和 Reflect?它们的作用是什么?举例说明 Proxy 的使用场景。

四、DOM 与 BOM(20 题)

本章节涵盖DOM操作、事件处理、浏览器对象模型等交互相关知识

  1. 简述 DOM(文档对象模型)的概念及 DOM 树的结构。

  2. 如何获取 DOM 元素?常见的 DOM 选择器方法有哪些(如 getElementById、querySelector)?

  3. DOM 元素的常用属性有哪些(如 innerHTML、innerText、textContent)?它们的区别是什么?

  4. 如何创建和插入 DOM 元素?(如 createElement、appendChild、insertBefore)

  5. 如何删除和替换 DOM 元素?(如 removeChild、replaceChild)

  6. 简述 DOM 事件的类型(如鼠标事件、键盘事件、表单事件、加载事件)。

  7. DOM 中的事件对象(Event)有哪些常用属性和方法(如 target、currentTarget、preventDefault)?

  8. 什么是事件委托?为什么要使用事件委托?举例说明实现方式。

  9. 简述 DOM 的重绘(Repaint)和重排(Reflow/Layout)的概念及区别。如何减少重排和重绘?

  10. 什么是 BOM(浏览器对象模型)?BOM 包含哪些核心对象(如 window、document、location)?

  11. window 对象的常用属性和方法有哪些(如 window.innerWidth、window.open、window.alert)?

  12. location 对象的常用属性和方法有哪些(如 href、pathname、reload、replace)?

  13. history 对象的常用方法有哪些(如 pushState、replaceState、go、back)?它们的作用是什么?

  14. navigator 对象的作用是什么?如何通过 navigator 获取浏览器信息(如浏览器类型、版本)?

  15. screen 对象的作用是什么?如何获取屏幕的尺寸信息(如 screen.width、screen.height)?

  16. 简述浏览器的前进和后退功能的实现原理(基于 history 栈)。

  17. 如何实现页面的刷新?location.reload () 的参数有什么作用?

  18. 什么是同源策略?它对 DOM 操作有什么限制(如 iframe 跨域访问 DOM)?

  19. 如何检测浏览器的类型和版本?有哪些潜在问题?

  20. 简述 DOMContentLoaded 和 load 事件的区别,它们分别在什么时机触发?

五、前端工程化(20 题)

本章节涵盖模块化开发、构建工具、性能优化、自动化测试等工程实践

  1. 什么是前端工程化?它解决了哪些问题?

  2. 简述常见的前端模块化规范(CommonJS、AMD、CMD、ES Module)的区别。

  3. Webpack 的核心概念有哪些?(如 entry、output、loader、plugin)

  4. 如何优化 Webpack 的构建速度?列举至少 3 种方法。

  5. 什么是 Tree Shaking?它的原理是什么?

  6. 简述 Babel 的作用及工作原理。

  7. 什么是 ESLint?如何在项目中集成 ESLint?

  8. 前端项目中如何做单元测试?常用的测试框架有哪些?

  9. 什么是持续集成(CI)和持续部署(CD)?在前端项目中如何实现?

  10. 如何优化前端项目的首屏加载速度?列举至少 5 种方法。

  11. 什么是服务端渲染(SSR)?它有哪些优缺点?

  12. 简述前端性能优化的指标(如 FCP、LCP、TTI)及其含义。

  13. 如何进行前端项目的错误监控和上报?

  14. 什么是微前端?它解决了哪些问题?

  15. 前端项目中如何处理环境变量?不同环境(开发、测试、生产)如何配置?

  16. 什么是 PWA?它包含哪些核心技术?

  17. 如何实现前端项目的国际化?

  18. 前端项目中如何做权限控制?

  19. 什么是 BFF(Backend For Frontend)?它有什么优势?

  20. 如何保证前端项目的代码质量?(如代码规范、Code Review、自动化测试)

六、Vue 框架(30 题)

本章节涵盖Vue基础概念、组件通信、生命周期、状态管理、路由等框架知识

  1. Vue 的响应式原理是什么?Vue2 和 Vue3 在实现上有什么区别?

  2. Vue 的生命周期钩子有哪些?分别在什么时候调用?

  3. Vue 组件间通信的方式有哪些?各自的使用场景是什么?

  4. Vuex 的核心概念有哪些?(如 state、getter、mutation、action、module)

  5. Vue Router 的导航守卫有哪些?它们的执行顺序是什么?

  6. Vue 中的计算属性和侦听器有什么区别?使用场景分别是什么?

  7. Vue 中的 v-if 和 v-show 有什么区别?使用场景分别是什么?

  8. Vue 中如何实现组件的动态渲染?(如 component 标签的 :is 属性)

  9. Vue 中的插槽(slot)是什么?如何使用具名插槽和作用域插槽?

  10. Vue 中的 keep-alive 组件的作用是什么?它有哪些属性和钩子函数?

  11. Vue 中如何处理表单输入和验证?

  12. Vue 中的自定义指令如何定义和使用?有哪些钩子函数?

  13. Vue 中的混入(mixin)是什么?它的使用场景和注意事项是什么?

  14. Vue 中的异步组件是什么?如何使用?

  15. Vue 中如何优化性能?(如虚拟列表、懒加载、组件缓存)

  16. Vue 3 的 Composition API 与 Options API 有什么区别?各自的优缺点是什么?

  17. Vue 3 中的 ref、reactive、toRef、toRefs 有什么区别?

  18. Vue 3 中的 setup 函数的参数和返回值分别是什么?

  19. Vue 3 中的 Teleport 组件的作用是什么?使用场景是什么?

  20. Vue 3 中的 Suspense 组件的作用是什么?如何处理异步组件的加载状态?

  21. Vue 中的 nextTick 方法的作用是什么?使用场景是什么?

  22. Vue 中如何实现权限控制?(如路由权限、按钮权限)

  23. Vue 项目中如何与后端 API 交互?(如 axios 的封装和使用)

  24. Vue 项目中如何处理跨域问题?

  25. Vue 项目的部署和优化策略有哪些?

  26. Vue 中的 provide/inject 的作用是什么?与 Vuex 相比有什么区别?

  27. Vue 3 中的 Fragment、Suspense、Teleport 组件的作用分别是什么?

  28. Vue 中如何实现国际化?

  29. Vue 项目中如何做单元测试?常用的测试工具有哪些?

  30. Vue 2 迁移到 Vue 3 需要注意哪些变化和兼容性问题?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值