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

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

少侠:(拔刀)嗯?

帅气的我:少侠,淡定淡定,我们来看秘籍吧,刚刚我们说了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这样自定义对象

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

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

帅气的我:好嘞

少侠学代码系列(二)->JS实现的更多相关文章

  1. 少侠学代码系列(一)->JS起源

    少侠:喂,有人吗?赶紧出来接客了,有没有人啊 帅气的我:来了来了,少侠有何吩咐? 少侠:把你们店里的秘籍呈上来我要学JS 帅气的我:少侠,别这样,我们秘籍是不外传的,祖上传下来的规矩,传人妖不传男女. ...

  2. [Python] 文科生零基础学编程系列二——数据类型、变量、常量的基础概念

    上一篇:[Python] 文科生零基础学编程系列--对象.集合.属性.方法的基本定义 下一篇: (仍先以最简单的Excel的VBA为例,语法与Python不同,但概念和逻辑需要理解透彻) p.p1 { ...

  3. 辛巴学院-Unity-剑英陪你零基础学c#系列(二)顺序

    这不是草稿 辛巴学院:正大光明的不务正业.   上一次的教程写出来之后,反馈还是挺多的,有很多都做了修改,也有一些让人崩溃,不得不说上几句.有些人有些很奇怪的地方,你写篇东西,被看了以后不说他感觉怎么 ...

  4. 一步一步学EF系列二【Fluent API的方式来处理实体与数据表之间的映射关系】

    EF里面的默认配置有两个方法,一个是用Data Annotations(在命名空间System.ComponentModel.DataAnnotations;),直接作用于类的属性上面,还有一个就是F ...

  5. D&F学数据结构系列——二叉堆

    二叉堆(binary heap) 二叉堆数据结构是一种数组对象,它可以被视为一棵完全二叉树.同二叉查找树一样,堆也有两个性质,即结构性和堆序性.对于数组中任意位置i上的元素,其左儿子在位置2i上,右儿 ...

  6. [Python] 文科生零基础学编程系列三——数据运算符的基本类别

    上一篇:[Python] 文科生零基础学编程系列二--数据类型.变量.常量的基础概念 下一篇: ※ 程序的执行过程,就是对数据进行运算的过程. 不同的数据类型,可以进行不同的运算, 按照数据运算类型的 ...

  7. 从零开始学 Web 之 Vue.js(二)过滤器,按键修饰符,自定义指令

    大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...

  8. .net基础学java系列(二)IDE 之 插件

    上一篇文章.net基础学java系列(二)IDE "扎实的基础"+"宽广的视野",基本可以帮我们摆脱码畜.码奴.码农的命运! IT领袖:IT大哥:IT精英:IT ...

  9. .net基础学java系列(二)IDE

    上一篇文章.net基础学java系列(一)视野 废话: "视野"这篇文章,管理员说它比较空洞!也许初学者看不懂表格中的大部分内容!多年的neter估计也有很多不知道的! 有.net ...

随机推荐

  1. [Swift]LeetCode126. 单词接龙 II | Word Ladder II

    Given two words (beginWord and endWord), and a dictionary's word list, find all shortest transformat ...

  2. [Swift]LeetCode521. 最长特殊序列 Ⅰ | Longest Uncommon Subsequence I

    Given a group of two strings, you need to find the longest uncommon subsequence of this group of two ...

  3. [Swift]LeetCode729. 我的日程安排表 I | My Calendar I

    Implement a MyCalendar class to store your events. A new event can be added if adding the event will ...

  4. 通信统计接口字段填充内容shell脚本

    现在通信行业上班,最麻烦的就是计算各个协议接口字段填充的内容是否正确.经历了小白似的一个个字段统计在到单个接口所有字段统计,然后到现在的多个接口一次统计.在大大节省了时间的同时,让自己有更充足的时间来 ...

  5. 必须知道的Java八大排序算法

    冒泡排序.简单选择.直接插入.快速排序.堆排序.希尔排序.归并排序.基数排序. 将其按排序方式分类如下图所示: 1.冒泡排序: 基本思想——在要排序的一组数中,对当前还未排好序的范围内的全部数据,自上 ...

  6. 针对 Ocelot 网关的性能测试

    一.背景 目前我们项目是采用的 Ocelot 作为 API 网关,并且在其基础上结合 IdentityServer4 开发了一套 API 开放平台.由于部分项目是基于 ABP 框架进行开发的,接口的平 ...

  7. 前两天做项目遇到了sqlserver最大连接数 Max Pool Size 的问题

    前言:出现这种问题使因为程序对connection的回收出现了问题,是因为你的代码出出现了过多new connection(),这种情况还是你的代码问题,如果不想把问题归根于程序,那你就可以改变con ...

  8. 从无到有-在create-react-app基础上接入react-router、redux-saga

    搭建项目框架 新建项目 执行如下代码,用create-react-app来建立项目的基础框架,然后安装需要用到的依赖. $ npx create-react-app my-test-project $ ...

  9. springboot+mybatis+dubbo+aop日志第一篇

    本篇文章主要讲述项目搭建过程,不会涉及过多的基础知识,本项目是作者对前段时间学习的一个总结,主要使用到技术有:maven父子工程.springboot.mybatis.dubbo.zookeeper. ...

  10. IDEA使用总结

    IDEA常用设置 在我们第一眼看见IDEA是这个样子的: 显示工具条 我们要显示工具条!,两个按钮哦 黑色主体 我们要黑色的主题,白色的太low了! 调整字体大小 现在的字体太小了,我要鼠标滑轮+cr ...