JS主要由三部分组成,一个完整的javascript实现应该有下列三个不同部分组成:
- 核心(ECMAScript)
- 文档对象模型(DOM)
- 浏览器对象模型(BOM)

**ECMAScript:**提供核心语言功能,是核心,规定了这们语言的书写规范;
我们常说的JS语法指的是ECMAScript规定的语法;WEB浏览器只是ECMA的宿主环境之一,也可以不依赖浏览器,比如宿主环境可能还包括Node.js;
ECMAScript规定了Javascript这门语言的组成部分;主要规定了语法、类型、语句、关键字、保留字、操作符、对象;
**DOM:**提供访问和操作网页内容的方法和接口,(document object model 简称DOM 文档对象模型);在HTML页面,通过DOM将整个页面抽象为一组分层节点,
借助DOM提供的API,可以轻松的增删改查,借助DOM做到不刷新页面而修改页面外观和内容
BOM:提供与浏览器交互的方法和接口;BOM最蛋疼的部分是没有统一的标准;从根本上讲BOM只处理浏览器窗口和框架,(browser object model 简称 BOM 浏览器对象模型)。