• 读《高程3》系列之JavaScript实现


    一个完整的JavaScript实现是有下面三个不同的部分组成的:

    *核心(ECMAScript);

    *文档对象(DOM);

    *浏览器对象模型(BOM);

    一、ECMAScript;

    1,ECMAScript与web浏览器没有以来关系;

    2,这门语言本身不包含输入和输出的定义;

    3,web浏览器只是ECMAScript实现可能的宿主环境之一,另外的如node、AdobeFlash;

    4,宿主环境不仅提供基本的ECMAScript实现,同时也会提供该语言的扩展,以便语言与环境之间对接交互。这些扩展如---DOM,则利用ECMAScript的核心类型和语法提供更多具体的功能,以便实现针对环境的操作;

    5,ECMAScript又下面组成;

      *语法;

      *类型;

      *语句;

      *关键字;

      *保留字;

      *操作符;

      *对象;

    6,ECMAScript就是对实现该标准规定的各个方面内容的语言的描述;

    二、文档对象模型(DOM);

    1,文档对象模型开始是针对XML的,但是经过扩展用于HTML的引用程序编程接口;

    2,DOM把整个页面映射为一个多层节点结构(树形图),XML和HTML页面中的每个组成部分都是某种类型的节点,这些节点又包含则不同类型的数据。

    3,通过DOM创建的树形图,可以控制页面内容和结构,借助DOM提供的API,可以进行增删改查;

    4.1,DOM包括DOM1和DOM2,DOM1包括DOM核心和DOM HTML。其中DOM核心规定的是如何映射基于XML的文档结构,以便简化对文档中任意部分的访问和操作。DOM HTML模块则在DOM核心的基础上加以扩展,添加了针对HTML的对象和方法;

    这是DOM0级别,这个级别的事件如下

    <button onclick="fn" id='myButton'></button>
    
    
    <script>
    document.getElementById("myButton").onclick = function () {
            alert('thanks');
    }
    </script>

    4.2,DOM2扩充了鼠标和用户界面事件、范围、遍历(迭代DOM文档的方法)等细分模块,而且通过对象接口增加了对CSS的支持。DOM1级中的DOM核心也经过扩展开始支持XML命名空间。

       DOM视图(DOM views):定义了跟踪不同文档(例如,应用CSS之前和之后的文档)视图的接口
       DOM事件(DOM Events):定义了事件和事件处理的接口
       DOM样式(DOM Style):定义了基于CSS为元素应用样式的接口
       DOM遍历和范围(DOM Traversal and Range):定义了遍历和操作文档树的接口;

    DOM2级事件;

    监听函数注册,通过addEventListener或者attachEvent(ie);

    4.3,DOM3进一步扩展了DOM,引入了以统一方式加载和保存文档的方法——在DOM架子啊和保存模块中定义;新增了验证文档的方法——在DOM验证模块中定义。

    三、浏览器对象模型(BOM)

    1,开发人员可以是用BOM控制浏览器显示的页面以外部分;

    2,从根本上讲,BOM只处理浏览器窗口和框架,但人们习惯上也把所有针对JavaScript扩展算作BOM一部分,有如下扩展;

      * 弹出新浏览器窗口功能;

      * 移动、缩放和关闭浏览器窗口的功能;

      * 提供浏览器详细信息的navigator对象;

      * 提供浏览器所加载页面的详细信息的location对象;

      * 提供用户显示器分辨率信息的screen对象;

      * 对cookies的支持;

      * 像XMLHttprequest和IE的ActiveXobject这样的自定义对象;

    3,由于没有BOM标准,因为每个浏览器都有自己的实现;

  • 相关阅读:
    前端解决跨域问题的8种方案(最新最全)
    javascript中“use strict”的好处和坏处
    转载 :请描述一下 cookies,sessionStorage 和 localStorage 的区别?
    七天学会nodejs
    js中的类、继承、闭包
    转:浏览器内核、渲染引擎、js引擎
    html中position定位问题
    html浏览器的兼容问题
    css命名规则
    搭建keepalived遇到的问题
  • 原文地址:https://www.cnblogs.com/thomas-yang-github/p/11651312.html
Copyright © 2020-2023  润新知