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

前端面试题(一)

1. HTML 和 CSS 面试题

  • 如何在 HTML 中嵌入 CSS?

    • CSS 可以通过三种方式嵌入:外部样式表(<link>标签),内部样式(<style>标签),和行内样式(通过元素的style属性)。
  • 块级元素和内联元素的区别?

    • 块级元素会独占一行,典型例子有 <div>, <h1>, <p> 等。内联元素则不会独占一行,常见的如 <span>, <a>
  • flexbox 和 grid 布局的区别?

    • Flexbox 主要用于一维布局(水平或垂直方向),而 Grid 则擅长二维布局,可以在水平和垂直方向上进行更复杂的排列。

2. JavaScript 面试题

  • var, letconst 的区别?

    • var 有函数作用域,可以在声明之前使用(变量提升),而 letconst 都有块级作用域,声明之前不可用。const 声明的变量不能重新赋值。
  • 什么是闭包?

    • 闭包是指函数能够记住并访问它的词法作用域,即使在函数执行完成后,依然可以访问外部函数中的变量。
  • 事件冒泡和事件捕获的区别?

    • 事件冒泡是指事件从目标元素开始逐级向上传播,而事件捕获则是从根节点逐级向下传递到目标元素。

3. 浏览器行为

  • 浏览器的渲染流程是怎样的?

    • 浏览器首先解析 HTML 和 CSS 生成 DOM 树和 CSSOM 树,然后结合这两者生成渲染树,最后通过布局和绘制步骤展示页面。
  • 为什么 CSS 会阻塞渲染,而 JS 会阻塞 DOM 解析?

    • CSS 阻塞渲染是因为浏览器需要先计算样式才能绘制页面。JavaScript 会阻塞 DOM 解析是因为它可能会修改 DOM 结构,因此必须等到 JS 加载完毕并执行后再继续解析。

4. Vue.js 相关问题

  • Vue 的双向数据绑定是如何实现的?

    • Vue.js 通过 Object.defineProperty(Vue 2)或 Proxy(Vue 3)来实现数据劫持,当数据发生变化时,自动触发视图更新。
  • Vue 生命周期中的 mountedcreated 有什么区别?

    • created 阶段,实例已经创建,可以访问数据和方法,但尚未挂载 DOM。mounted 时,实例已挂载,DOM 可以访问。
  • 如何在 Vue 中实现组件之间的通信?

    • 父子组件可以通过 props$emit 进行通信,兄弟组件可以通过事件总线或使用 Vuex 实现全局状态管理。

5. 性能优化

  • 前端性能优化有哪些常见手段?
    • 使用懒加载、减少 DOM 操作、压缩和合并文件、使用 CDN、缓存、避免内存泄漏。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 设计模式 享元模式(Flyweight Pattern)
  • 线程对象的生命周期、线程等待和分离
  • 计算机毕业设计 基于SpringBoot框架的网上蛋糕销售系统的设计与实现 Java实战项目 附源码+文档+视频讲解
  • 【小米手机无法连接电脑】一般问题和驱动MTP问题的结局ue
  • 【深度学习发展史】张量与神经网络|生成模型|序列学习模型|深度强化学习是如何一步步发展的?
  • 如何只用 CSS 制作网格?
  • Docker 里面按照ifconfig
  • 封装Progress 组件
  • 排序算法的分析和应用
  • Redis作为单线程模型,为什么效率高、速度快呢?
  • 虚幻引擎解决构建问题
  • Chainlit集成LlamaIndex实现知识库高级检索(BM25全文检索器)
  • 图像压缩编码(4)--H.26x系列视频压缩编码_2
  • M9410A VXT PXI 矢量收发信机,300/600/1200MHz带宽
  • DPDK 简易应用开发之路 3:实现ping(ARP ICMP 协议)
  • 【每日笔记】【Go学习笔记】2019-01-10 codis proxy处理流程
  • 30天自制操作系统-2
  • 8年软件测试工程师感悟——写给还在迷茫中的朋友
  • git 常用命令
  • Hibernate最全面试题
  • Java,console输出实时的转向GUI textbox
  • Java教程_软件开发基础
  • JS创建对象模式及其对象原型链探究(一):Object模式
  • js面向对象
  • LeetCode29.两数相除 JavaScript
  • PHP的类修饰符与访问修饰符
  • 百度小程序遇到的问题
  • 适配iPhoneX、iPhoneXs、iPhoneXs Max、iPhoneXr 屏幕尺寸及安全区域
  • 手机端车牌号码键盘的vue组件
  • 数据库写操作弃用“SELECT ... FOR UPDATE”解决方案
  • 双管齐下,VMware的容器新战略
  • 算法-插入排序
  • 为物联网而生:高性能时间序列数据库HiTSDB商业化首发!
  • 新手搭建网站的主要流程
  • 转载:[译] 内容加速黑科技趣谈
  • 自制字幕遮挡器
  • ​Python 3 新特性:类型注解
  • ​软考-高级-系统架构设计师教程(清华第2版)【第12章 信息系统架构设计理论与实践(P420~465)-思维导图】​
  • ## 1.3.Git命令
  • #快捷键# 大学四年我常用的软件快捷键大全,教你成为电脑高手!!
  • $forceUpdate()函数
  • $nextTick的使用场景介绍
  • (13):Silverlight 2 数据与通信之WebRequest
  • (4)事件处理——(7)简单事件(Simple events)
  • (C语言)球球大作战
  • (Qt) 默认QtWidget应用包含什么?
  • (阿里云万网)-域名注册购买实名流程
  • (独孤九剑)--文件系统
  • (附源码)springboot助农电商系统 毕业设计 081919
  • (教学思路 C#之类三)方法参数类型(ref、out、parmas)
  • (全部习题答案)研究生英语读写教程基础级教师用书PDF|| 研究生英语读写教程提高级教师用书PDF
  • (万字长文)Spring的核心知识尽揽其中
  • (一)插入排序
  • (原創) 如何優化ThinkPad X61開機速度? (NB) (ThinkPad) (X61) (OS) (Windows)
  • (自适应手机端)行业协会机构网站模板