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

【KO】前端面试四

以下是剩余题目的详细解答,结合前端知识体系和实际应用场景展开:

91. JS 放在 head 里和放在 body 里有什么区别?

对比维度 放在 <head> 放在 <body>
加载阻塞性 会阻塞页面渲染,需等待 JS 下载/执行完成后,才继续渲染页面 一般放在 </body> 前,页面渲染完成后再执行 JS,不阻塞渲染
DOM 可访问性 执行时可能 DOM 未加载(如操作 document.getElementById 会返回 null DOM 已渲染完成,可直接访问/操作元素
应用场景 需优先执行的代码(如关键依赖、统计脚本),但需配合 defer/async 避免阻塞 常规业务逻辑(如事件绑定、交互逻辑),保证 DOM 可用
示例 <head><script src="app.js"></script></head>(需额外处理阻塞问题) <body>...<script src="app.js"></script></body>(推荐写法)

92. Eslint 代码检查的过程是啥?【必会】

Eslint 代码检查流程分 静态分析规则校验 两大阶段,核心步骤:

  1. 解析代码
    • 将 JS 代码通过 Espree(Eslint 内置解析器 )转换为抽象语法树(AST ),识别代码结构(如变量声明、函数调用 )。
  2. 遍历 AST
    • Eslint 遍历 AST 节点,触发 规则监听函数(如检测 console.log 的规则会监听 MemberExpression 节点 )。
  3. 应用规则
    • 对每个节点,根据配置的规则(如 no-console 禁止 console )判断是否违规,违规则标记错误。
  4. 输出结果
    • 将违规信息格式化输出(命令行、编辑器提示 ),支持自动修复(--fix )时修改代码 AST 并生成修复后的代码。

93. 虚拟滚动加载原理是什么,用代码简单实现一个虚拟滚动加载

原理:

虚拟滚动通过 只渲染可视区域内的 DOM ,而非全部列表,降低渲染压力。核心逻辑:

  1. 计算列表总高度并占位(用容器 padding 模拟 )。
  2. 监听滚动事件,动态计算 可视区域应渲染的起始/结束索引
  3. 仅渲染可视区域的列表项,配合数据缓存实现滚动加载。
简易实现(Vue 示例,React/原生同理 ):
<div class="virtual - list" @scroll="handleScroll"><!-- 占位容器,模拟总高度 --><div class="placeholder" :style="{ height: totalHeight + 'px' }"></div><!-- 实际渲染的列表 --><div class="visible - list"</
http://www.xdnf.cn/news/18771.html

相关文章:

  • Java八股文-java基础面试题
  • 9.Shell脚本修炼手册---数值计算实践
  • 使用tensorRT10部署yolov5目标检测模型(2)
  • UE5.3 中键盘按键和操作绑定
  • 青少年机器人技术(六级)等级考试试卷-实操题(2021年12月)
  • 深入理解3x3矩阵
  • 11.Shell脚本修炼手册---IF 条件语句的知识与实践
  • 【数据结构】布隆过滤器的概率模型详解及其 C 代码实现
  • mysql没有mvcc之前遇到了什么问题
  • 2025年AI Agent规模化落地:企业级市场年增超60%,重构商业作业流程新路径
  • Hive中的join优化
  • 基于SpringBoot的招聘系统源码
  • 解决Conda访问官方仓库失败:切换国内镜像源的详细教程
  • STAR-CCM+|K-epsilon湍流模型溯源
  • GEO优化供应商:AI搜索时代的“答案”构建与移山科技的引领,2025高性价比实战指南
  • 基于大模型的对话式推荐系统技术架构设计
  • Linux服务环境搭建指南
  • AI绘画落地难?我用Firefly+Marmoset,将2D概念图“反向工程”为3D游戏资产
  • Deep Unfolding Net(LR到HR)
  • Linux 进程间通信之System V 共享内存
  • react中多个页面,数据相互依赖reducer解决方案
  • 文生3D实战:用[灵龙AI API]玩转AI 3D模型 – 第7篇
  • 青少年机器人技术(四级)等级考试试卷-实操题(2021年12月)
  • Boost.Asio 库中的 async_read_some用法
  • 我从零开始学习C语言(14)- 基本类型 PART1
  • vscode 中自己使用的 launch.json 设置
  • 5.7 生成环境使用cdn加载element ui
  • ASCOMP PDF Conversa:高效精准的PDF转换工具
  • pcie实现虚拟串口
  • 人工智能之数学基础:离散随机变量和连续随机变量