1. JavaScript的核心ECMAScript描述了该语言的语法和基本对象。

2. DOM描述了处理网页内容的方法和接口。

3. BOM描述了与浏览器进行交互的方法和接口。

4. JavaScript组成

4.1. 一个完整的JavaScript实现是由以下3个不同部分组成的:

  • 核心(ECMAScript)
  • 文档对象模型(DOM)
  • 浏览器对象模型(BOM)

5. ECMAScript

5.1. ECMAScript并不与任何具体浏览器相绑定, 仅仅是一个描述, 定义了脚本语言的所有属性、方法和对象。其他语言可以实现ECMAScript来作为功能的基准。

5.2. 简单地说, ECMAScript 描述了以下内容:

  • 语法(变量怎么声明、区分不区分大小写、函数怎么声明等等)
  • 类型
  • 语句
  • 关键字
  • 保留字
  • 运算符
  • 对象

5.3. 每个浏览器都有它自己的ECMAScript接口的实现, 然后这个实现又被扩展, 包含了DOM和BOM。

6. DOM(文档对象模型)

6.1. DOM将把整个页面规划成由节点层级构成的文档。

6.2. 请考虑下面的html页面:

<html><head><title>Sample Page</title></head><body><p>hello world!</p></body>
</html>

这段代码可以用DOM绘制成一个节点层次图:

6.3. DOM通过创建树来表示文档, 从而使开发者对文档的内容和结构具有空前的控制力。用DOM API可以轻松地删除、添加和替换节点。

7.BOM(浏览器对象模型)

7.1. BOM可以对浏览器窗口进行访问和操作。使用BOM, 开发者可以移动窗口、改变状态栏中的文本以及执行其他与页面内容不直接相关的动作。

7.2. 使用BOM可以执行如下内容:

  • 弹出新的浏览器窗口
  • 移动、关闭浏览器窗口以及调整窗口大小
  • 提供Web浏览器详细信息的导航对象
  • 提供用户屏幕分辨率详细信息的屏幕对象
  • 对cookie的支持

7.3. BOM的几个主要对象:

  • Window对象
  • Navigator对象
  • Screen对象
  • History对象
  • Location对象

003_JavaScript实现相关推荐

  1. 随笔目录【2016年12月1日整理中~】

    .Net 记录(9) 不用写Windows服务实现定时器功能(FluentScheduler )自定义log日志iis 7.5应用程序池自动停止集合已修改;可能无法执行枚举操作.ADO.NET – 3 ...

  2. Hook 钩子技术及代码注入的 3 种方式

    Hook 技术介绍 Hook 技术中文又叫作钩子技术,它就是在程序运行的过程中,对其中的某个方法进行重写, 在原有的方法前后加入我们自定义的代码.相当于在系统没有调用该函数之前,钩子程序就先捕获该消息 ...

最新文章

  1. 【Android OpenGL ES】阅读hello-gl2代码(二)Java代码
  2. 数学建模中的matlab实例,matlab数学建模实例
  3. CentOS镜像下载地址
  4. excel 用VBA将所有单元格内容全部转换为文本
  5. python分子化学模拟_python简单实现gillespie模拟
  6. 达梦工作笔记-达梦客户端,执行命令后要保存退出,才生效
  7. python连连看小游戏_python递归法实现简易连连看小游戏
  8. centos 安装PHP7.0
  9. CodeForces 785C Anton and Fairy Tale 二分
  10. LIO-SAM探秘第三章之代码解析(一) --- utility.h + imageProjection.cpp
  11. JS生成随机数并排序
  12. 第三季-第5课-Linux编程规范
  13. zk临时节点失效时间_dubbo学习(六)服务发布dubbo服务在zk的创建、订阅
  14. python科赫雪花递归理解_科赫雪花的python3实现(递归,非递归)
  15. 恶魔奶爸 指南帖——简易版
  16. 在手机上Link of class 'Lcom/example/test/MainActivity;' failed
  17. 记一次matespace导致的FGC导致接口性能尖刺
  18. 梦幻西游 WSG 文件格式分析
  19. 报表工具对比选型系列用例——多源分片报表
  20. Java—String类的intern方法的学习

热门文章

  1. iOS 组件化 —— 路由设计思路分析
  2. Python学习笔记(六)
  3. oracle中的NVL,NVL2,NULLIF,COALESCE函数使用
  4. apache基于ip如何配置虚拟主机
  5. vue cli3.3 以上版本配置vue.config.js
  6. C# 特性(attribute)
  7. 高校调课代课审批系统设计研究
  8. html基本标签结构
  9. TQ2440平台上LCD驱动的移植
  10. 完美运动框架(js)