• 少侠学代码系列(二)->JS实现


    少侠:小子,休息好了没,赶紧的

    帅气的我:好了好了,嚷什么

    少侠:(拔刀)嗯?

    帅气的我:少侠,淡定淡定,我们来看秘籍吧,刚刚我们说了JS实现是由三个部分组成的

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

         我们挨着看一下这三个的含义

    ECMAScript:由ECMA-262定义的ECMAScript定义的ECMAScript和Web浏览器没有关系,实际上,这门语言并不包含输入输出定义,ECMA-262定义的只是这门语言的基础,而在此基础上可以构建出更完善的脚本语言,我们常见的web浏览器只是ECMAScript实现可能的宿主环境之一,宿主环境不仅提供基本的ECMAScript实现,同时也会提供该语言的扩展,以便语言与环境间对接交换,而这些扩展---如DOM,则利用ECMAScript的核心类型和语法提供更多更具体的功能,以便实现针对环境的操作,其他的宿主环境包括Node和Adobe Flash,既然ECMA-262没有参照web浏览器,那他规定了什么呢,大致来说,它规定了以下部分:

      语法

      类型

      语句

      关键字

      保留字

      操作符

      对象

    文档对象模型(DOM):是针对XML但经过扩展用于HTML的应用编辑程序接口(API),DOM把整个页面映射成一个多层节点结构,HTML或者XML页面中的每个组成部分都是某种类型的节点,这些节点又包含着不同类型的数据。

      为什么使用DOM?在IE4和Netscape Navigator 4分别支持不同形式DHTML的基础上,开发人员首次无需重新加载网页就可以修改外观和内容了,但是由于Netscape和微软在开发DHTML方面各持己见,过去那个只需要编写一份HTML页面就可以在所有浏览器运行的时代结束了,为了解决两强割据的局面,负责指定web通信标准的W3C(万维网联盟)开始着手规划DOM

      DOM级别:

        DOM1级:DOM1级于1998年10月成为W3C的推荐标准,DOM1级由DOM核心(DOM Core)DOM HTML组成,DOM核心规定的是如何映射基于XML的文档结构,以便简化对文档任意部分的访问和造作,DOM HTML模块则在DOM核心的基础上加以扩展,添加了针对HTML的对象和方法(注意:DOM并不是只针对JS,很多别的语言也实现了DOM)

        DOM2级:DOM2级在原有DOM的基础上又添加了鼠标和用户界面事件,范围,遍历等细分模块,而且通过对象接口增加了对CSS的支持,DOM1级中的DOM核心模块也经过扩展开始支持XML命名空间,DOM2级引入了一下新模块:

            DOM视图:定义了跟踪不同文档视图的接口

            DOM事件:定义了事件和事件处理的接口

            DOM样式:定义了基于CSS为元素应用样式的接口

            DOM遍历和范围:定义了遍历和操作文档树的接口

        DOM3级:进一步扩展了DOM,引入了统一方法加载和保存文档的方法---在DOM加载和保存模块中定义,新增了验证文档的方法--在DOM验证模块中定义,扩展了核心,开始支持XML1.0规范

        其他DOM标准:除了DOM核心和DOM HTML接口外,另外几种语言也发布了针对自己的DOM标准,下面列出的语言都是基于XML的,每种语言的DOM标准都添加了与特定语言相关的新方法和新接口:

            SVG(可伸缩矢量图)

            MathML(数学标记语言)

            SMIL(同比多媒体集成语言)

            还有一些浏览器也开发了自己的DOM实现,例如Mozilla的XUL(用户界面语言),但是只有上面列出的几种语言是W3C推荐标准

    浏览器对象模型(BOM):BOM只处理浏览器窗口和框架,但人们习惯上也把所有针对浏览器的JavaScript扩展算做BOM的一部分,下面列一下这些扩展

            弹出新浏览器窗口的功能

            移动,缩放,和关闭浏览器窗口的功能

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

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

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

            对cookie的支持

            像XMLHttpRequest和IE的ActiveXObject这样自定义对象

    帅气的我:少侠,我困了,能睡一会吗

    少侠:真是懒驴上磨屎尿多,去睡吧,准了

    帅气的我:好嘞

  • 相关阅读:
    转: PHP的"::"、"->"和"=>"的区别
    PHP命名空间
    PHP+MySQL数据库编程的步骤
    SQL基础
    Mysql的CMD操作
    Apache服务器配置
    【网关】SpringCloud-Gateway
    Oracle表分区
    MongoDB---分片
    MongoDB-BSON
  • 原文地址:https://www.cnblogs.com/suihang/p/10640616.html
Copyright © 2020-2023  润新知