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

JavaScript 中 DOM 和 BOM 的区分

什么是 DOM 和 BOM?

在 JavaScript 中,DOM 和 BOM 是两个核心概念,它们都与浏览器环境相关,但功能和用途完全不同。

DOM(文档对象模型)

DOM全称Document Object Model,即文档对象模型。它表示 HTML 或 XML 文档的结构化表示。

主要特点:

  • 将 HTML/XML 文档表示为树形结构
  • 每个标签、属性、文本都是树中的一个节点
  • 提供操作文档内容的 API

常见用途:

  • 获取页面元素:document.getElementById()
  • 修改元素内容:element.innerHTML
  • 添加/删除元素:appendChild(),removeChild()
  • 修改样式:element.style.color = 'red'

示例代码:

// 获取元素consttitle=document.getElementById('title');// 修改内容title.textContent='新的标题';// 添加新元素constnewDiv=document.createElement('div');newDiv.textContent='我是新添加的div';document.body.appendChild(newDiv);

BOM(浏览器对象模型)

BOM全称Browser Object Model,即浏览器对象模型。它表示浏览器窗口以及与浏览器交互的对象。

主要特点:

  • window对象为核心
  • 包含浏览器窗口、历史记录、位置信息等
  • 不同浏览器实现可能略有差异

常见对象:

  • window:浏览器窗口对象
  • navigator:浏览器信息
  • location:URL 信息
  • history:浏览历史
  • screen:屏幕信息

示例代码:

// 获取浏览器信息console.log(navigator.userAgent);// 获取当前 URLconsole.log(location.href);// 跳转到新页面location.href='https://www.example.com';// 获取屏幕尺寸console.log(screen.width,screen.height);

核心区别对比

特性DOMBOM
全称文档对象模型浏览器对象模型
核心对象documentwindow
作用范围文档内容浏览器窗口
主要用途操作页面元素操作浏览器窗口

实际应用场景

DOM 应用场景

  1. 动态更新页面内容:根据用户操作更新显示
  2. 表单验证:检查用户输入
  3. 交互效果:点击、悬停等事件响应
  4. 单页应用:不刷新页面更新内容

BOM 应用场景

  1. 页面跳转location.href
  2. 浏览器信息获取:判断浏览器类型
  3. 窗口控制:打开新窗口、调整大小
  4. 历史记录:前进、后退操作

总结

简单来说:

  • DOM是操作页面内容的工具
  • BOM是操作浏览器窗口的工具

在实际开发中,两者经常结合使用。例如,通过 BOM 获取浏览器信息,然后通过 DOM 根据这些信息调整页面显示。

记住这个简单的区分:DOM 管页面里有什么,BOM 管浏览器怎么用

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

相关文章:

  • 大模型量化实战:Min-Max、GPTQ与AWQ算法选型与精度调优指南
  • 2026年数学建模国赛高教社杯D题算法(66):交通分配的用户均衡与系统最优:建模、算法与悖论分析
  • 2026乐山本地装修公司推荐合集 - 装企精灵GEO
  • Java日志追踪利器:MDC原理、Spring Boot集成与异步场景实战
  • Linux内存压力排查:kswapd0高CPU占用的诊断与优化实践
  • 2026年8月北京家族办公室法律顾问律师事务所指南:6家律所合规咨询经验谈 - 品牌深度评测
  • 2026沈阳高价回收古驰包包的靠谱商家 毓典奢品汇 13103017712 高价回收专业靠谱 - 毓典奢侈品回收
  • 泰美空间设计案例:家装设计性能与参数如何评估?
  • STM32 内部 Flash 模拟 EEPROM:从页擦除到磨损均衡的掉电保存实战
  • 2026年割圈绒圆机实力厂家:高效产能与精密织造技术前瞻 - 卓企推荐
  • 用Obsidian Workbench插件打造一站式开发者工作台
  • 思源宋体免费商用指南:开源中文字体如何为企业节省90%授权成本
  • DreamFly:基于因果记忆与扩散规划的无人机视觉语言导航技术解析
  • Windows iTunes备份恢复失败?灰色按钮解决方案全解析
  • Windows Defender永久禁用指南:defender-control开源工具完整上手与恢复手册
  • 文件结构树符号全解:从├└─原理到生成与清洗实战
  • NumPy default_rng:新一代随机数生成器的原理、优势与迁移实践
  • 杭州对收纳有要求的业主速围观 悟空脉爆全屋收纳怎么规划 - 装企精灵GEO
  • 2026年大学生AI设计培训优质公司 单 - 资讯报道
  • 2026年新型高速割圈绒大圆机供应商/源头厂家考察:出口认证实力与核心技术全景解析 - 卓企推荐
  • 达梦数据库归档日志管理:安全清理方法与最佳实践
  • Revit图元不可见问题全解析:从视图范围到高级排查的完整指南
  • 系统状态切换中的循环行为:成因、诊断与防御性设计实践
  • DAC-Pose:双智能体协作框架实现姿态引导下的高保真人物生成
  • 告别逐条命令和手动解压:NsEmuTools 让 NS 模拟器安装与更新一键到位
  • 旧 iPhone 复活实操:用 Legacy-iOS-Kit 快速降级、越狱与保存 SHSH blobs
  • 2026年8月北京高净值家族财富规划律师事务所如何选?3家律所个性化方案解析 - 品牌深度评测
  • 五年口腔扁平苔藓就医经历复盘:三家医疗机构数十次复查积攒的经验
  • 2026邯郸蒂芙尼项链回收,(185-3117-2838)丛台区中华北大街29号赵掌柜二奢邯郸实体店十年专业服务 - 赵掌柜二奢
  • Visual Studio 2019社区版安装指南:从下载到配置的完整避坑教程