JavaScript学习第一天

208 阅读4分钟

重学JavaScript


第一章什么是JavaScript ?


1.2:JavaScript实现

JavaScript分为以下几个部分:

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

1.2.1:DOM

  • 文档对象类型(DOM,Document Object Model) 是应用API,用于在HTML中使用扩展的XML,DOM其实是把整个页面抽象成为一组分层的节点。

    <html>
      <head>
        <title>Sample Page</title>
      </head>
      <body>
        <p> Hello World </p>
      </body>
    </html>
    
1.DOM为什么是必须的?
  • IE4和Navigator4 都支持不同形式的动态HTML

  • 开发者可以做到不刷新页面修改页面外观与内容

    同时也出现了一些问题

    • 各个公司采取不同思路开发DHTML,没有规范

    解决方案

    • 万维网联盟(W3C,World Wide Web Consortium) 制定DOM标准进程
2.DOM级别

DOM Level 1 成为W3C推荐标准,规范由两个模块组成:

  • DOM Core
  • DOM HTML

作用:

  • DOM Core提供映射 XML 文档,方便访问和操作文档任意部分的方式。
  • DOM HTML扩展了DOM Core,并且增加了特定于HTML的对象和方法

[注意]  DOM不只是JavaScript才能够访问

DOM Level 2

  • 对最初的DOM扩展增加对DHTML 支持的 鼠标和用户界面的事件 | 范围 | 遍历 | 迭代DOM节点的方法。
  • 通过对象接口支持了层叠样式表(CSS)

DOM Level 2 增加的模块:

  • DOM视图: 描述追踪文档不同视图(如应用css样式前后的文档)的接口
  • DOM事件: 描述事件以及事件处理的接口
  • DOM样式: 描述处理元素CSS样式的接口
  • DOM遍历和范围: 描述遍历和操作DOM🌲的接口

DOM Level 3

  • DOM Level 3 进一步扩展了DOM,增加了以统一的方式加载和保存文档的方法(包含在DOM Load and Save的新模块中)
  • 验证文档方法(DOM Validation)
  • DOM Core在Level 3中扩展支持了所有XML 1.0 的特性,包括 XML Infoset, Xpath 和 XML Base

[注意]  W3C目前不再按照 Level 维护 DOM,而是作为DOM Living Standard来进行维护其名曰 DOM4

3.其他DOM

除了DOM Core 和 DOM HTML 其实其他语言也发布了自己的DOM标准,有一些语言基于 XML , 都各自独有DOM 方法和接口

  • SVG (Scalable Vector Graphics) 可伸缩矢量图
  • MathML (Mathematical Markup Language) 数学标记语言
  • SMIL (Synchronized Multimedia Integration Language) 同步多媒体集成语言
  • Mozilla 的 XML 用户界面语言(XUL,XML User Interface Language)

[注意]  只有前面列表中语言是W3C推荐标准

4.Web浏览器对DOM的支持情况
  • IE 5.5 尝试支持DOM (该版本实现了DOM Level 1的大部分内容)
  • IE 6、7 都无实现新特性
  • Mozilla 0.6.0 之前都不支持 DOM。
  • Firefox 3+ 支持全部Level 1 |Level 2(几乎全部) | Level 3(某些部分)

下表展示了主流浏览器支持DOM情况

1.2.2:BOM

IE3 和 Netscaple Navigator3 提供了浏览器对象模型 (BOM) API 支持访问 和 操作浏览器的窗口,使用BOM 可以控制浏览器显示页面之外的部分

  • BOM问题就是没有相关标准的JavaScript实现直到HTML5改变了这个局面,这个版本的HTML以正式规范形式覆盖了尽可能多的BOM特性

    总结来说:

    1. BOM主要针对浏览器窗口和子窗口

    2. 把浏览器的扩展都归在BOM范围中,例如:

      • 弹出新浏览器窗口的能力
      • 移动,缩放,和关闭浏览器窗口的能力
      • navigator对象,提供关于浏览器的详尽信息
      • location对象,提供浏览器加载页面的详尽信息
      • screen 对象,提供关于用户屏幕分辨率的详尽信息
      • perfrmance对象,提供浏览器内存占用,导航行为和时间统计的详尽信息
      • cookie支持
      • XMLHttpRequest 和 IE的ActiveXObject。

    👏🏻总结:

    JavaScript是一门用来与网页交互的脚本语言,由三个部分组成。

    • ECMAScript:由ECMA-262定义并提供核心功能

    • 文档对象模型(DOM): 网页内容交互的方法和接口

    • 浏览器对象模型(BOM):浏览器交互方法和接口

      • JavaScript以上三个部分得到以下五大Web浏览器不同程度支持
IEFirefoxChromesafariOpera

[补充​]  基本上所有浏览器都对ES5提供完善支持,而对ES6和ES7支持度也在不断提升