BOM是浏览器对象模型,核心为window对象,用于操作浏览器环境;DOM是文档对象模型,面向HTML/XML文档,提供节点操作接口;二者标准性不同,DOM有W3C统一标准,BOM无官方标准。

BOM 是 Browser Object Model(浏览器对象模型),它不是一套标准,而是浏览器提供的一组用于操作浏览器窗口及环境的对象集合。它的核心是 window 对象,所有其他 BOM 对象(如 location、history、navigator、screen、localStorage)都是它的属性或子对象。
DOM 是操作文档的,BOM 是操作浏览器的
DOM(Document Object Model)面向的是 HTML 或 XML 文档本身,把页面结构抽象成树形节点,让你能查、改、删、增元素和样式。比如:
– document.getElementById() 获取一个 div
– element.style.color = "red" 改变文字颜色
– document.createElement("p") 创建新段落
而 BOM 面向的是浏览器这个“运行容器”,比如:
– window.open() 打开新窗口
– location.href = "/login" 跳转页面
– history.back() 返回上一页
– navigator.userAgent 读取浏览器类型
DOM 有统一标准,BOM 没有
DOM 是 W3C 制定的正式标准,所有现代浏览器实现高度一致。
BOM 没有官方标准,各浏览器基本都支持 window、location 等核心对象,但某些方法或属性(尤其是早期 IE 的扩展,如 ActiveXObject)可能只在特定浏览器中存在。
这意味着 DOM 代码通常跨浏览器更稳;BOM 代码在用到非通用功能时,需要做兼容性判断。
1、什么是店中店?店中店是全诚商多用户版的一大特色,它既是独立的个体,又具有群集功能。我们做个例子说明:假设尊贵的您现实生活中租赁了一个店面,店面空间很大,您可以把您的店面分割成很多独立空间再向别人转租,这样您可以额外获得一部分租赁费用收入,借以减少你的个人租赁费用投入,还能起到活跃销售场所的气氛,俗话说:货卖一堆吗。你租赁的店面可以完全分割成很多空间向外转租,也可以自己保留一块空间为自己销售商品
window 是 BOM 的入口,也是 DOM 的宿主
window 是 BOM 的顶层对象,同时它又自带 document 属性——这个 document 就是 DOM 的根节点。
所以:
– window.document 是 DOM 的起点
– window.location 是 BOM 的一部分
– 你可以省略 window. 直接写 document 或 location,因为它们默认挂载在全局作用域
注意:虽然 document 是 window 的属性,但它属于 DOM 规范;window 本身不属于 JavaScript 语言内置对象,而是由浏览器注入的 BOM 对象。
常见混淆点澄清
– alert()、confirm()、setTimeout() 都是 window 的方法,属于 BOM
– document.querySelector()、element.classList.add() 属于 DOM
– localStorage.setItem() 是 Web Storage API,虽常被归入广义 BOM,但其实是独立标准(HTML5 规范),只是通过 window 暴露
– fetch() 和 XMLHttpRequest 不属于 BOM 或 DOM,它们是独立的网络 API










