JavaScript 的组成部分

JavaScript 由 ECMAScript、DOM 和 BOM 三部分组成

问题

JavaScript 由哪些部分组成?各部分的作用是什么?

解答

JavaScript 由三个部分组成:

1. ECMAScript

ECMAScript 是 JavaScript 的语言标准,由 ECMA-262 规范定义。它规定了:

  • 语法规则
  • 数据类型(Number、String、Boolean、Object 等)
  • 操作符和语句
  • 关键字和保留字
  • 内置对象(Array、Date、Math、Promise 等)
// ECMAScript 提供的能力
const arr = [1, 2, 3];
const doubled = arr.map(x => x * 2);
const promise = Promise.resolve('hello');

2. DOM(Document Object Model)

DOM 是操作网页内容的 API,将 HTML 文档表示为节点树。

// DOM 操作
const element = document.getElementById('app');
element.innerHTML = '<p>Hello</p>';
element.addEventListener('click', () => {
  console.log('clicked');
});

3. BOM(Browser Object Model)

BOM 是与浏览器交互的 API,提供了与浏览器窗口相关的功能。

// BOM 对象
window.alert('提示');
console.log(window.innerWidth);      // 窗口宽度
console.log(navigator.userAgent);    // 浏览器信息
console.log(location.href);          // 当前 URL
history.back();                      // 后退
localStorage.setItem('key', 'value'); // 本地存储

三者关系

JavaScript
├── ECMAScript(语言基础)
├── DOM(文档操作)
└── BOM(浏览器交互)
    ├── window
    ├── navigator
    ├── location
    ├── history
    ├── screen
    └── localStorage / sessionStorage

关键点

  • ECMAScript 是语言规范,定义语法和内置对象,与运行环境无关
  • DOM 是 W3C 标准,用于操作 HTML/XML 文档结构
  • BOM 没有统一标准,各浏览器实现可能有差异
  • Node.js 环境只有 ECMAScript,没有 DOM 和 BOM
  • window 是 BOM 的顶层对象,同时也是全局对象