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

【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/18505.html

相关文章:

  • 今日科技热点 | 量子计算突破、AI芯片与5G加速行业变革
  • PLECS 中使用 C-Script 来模拟 NTC 热敏电阻(如 NTC3950B)
  • 【K8s】整体认识K8s之Docker篇
  • 百度面试题:赛马问题
  • 嵌入式LINUX-------------数据库
  • 循环中的阻塞风险与异步线程解法
  • 搜索体验优化:ABP vNext 的查询改写(Query Rewrite)与同义词治理
  • 前端安全之XSS和CSRF
  • 鸿蒙异步处理从入门到实战:Promise、async/await、并发池、超时重试全套攻略
  • 互联网大厂Java面试实战:核心技术栈与场景化提问解析(含Spring Boot、微服务、测试框架等)
  • 量子计算驱动的Python医疗诊断编程前沿展望(中)
  • RabbitMQ面试精讲 Day 28:Docker与Kubernetes部署实践
  • Git checkout 与 Git reset 核心区别解析(分支与版本关联逻辑)
  • 如何在 Spring Boot 中安全读取账号密码等
  • 技术演进中的开发沉思-75 Linux系列:中断和与windows中断的区分
  • 【python与生活】如何自动总结视频并输出一段总结视频?
  • 基于 FastAPI 和 OpenFeature 使用 Feature Flag 控制业务功能
  • Js逆向 拼夕夕anti_content
  • 【读代码】SQLBot:开源自然语言转SQL智能助手原理与实践
  • 怎样避免游戏检测到云手机?
  • 深入浅出:图解 glibc —— 系统与应用的沉默基石
  • 【知识】Elsevier论文接收后的后续流程
  • 可预约体验 | 一句话生成全栈应用,网易CodeWave智能开发能力全新升级!
  • TDengine IDMP 应用场景:工业锅炉监控
  • 资深产品经理个人能力提升方向:如何系统化进阶与考证规划
  • Maven快速入门
  • Day26 树的层序遍历 哈希表 排序算法 内核链表
  • 数据库服务语句应用
  • 【机器学习深度学习】多模态典型任务与应用全景
  • 深入理解Java多线程:状态、安全、同步与通信