此系列文章,用于记录所学,如有错误欢迎指出。

Javascript组成

1.核心(ECMAScript)

2.文档对象模型(DOM)

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

1.核心(ECMAScript)

ECMAScript说白了是定义Javascript的标准,而这种标准与浏览器并无依赖关系。

我们现在前端所使用的Javascript只是遵循这一标准的,以浏览器为宿主平台的脚本语言。

遵循这一标准的脚本语言都可以称之为js。

而js的宿主平台除了我们最常用的浏览器平台之外,还有node,和Adobe flash等。

而这一部分的主要内容,一般指的是js的数据类型,变量的声明,语法等

2.DOM 文档对象模型

Dom这个概念相信许多人都知道

那么它具体是啥呢?

我在看JS高编之前也是知道有dom节点,bom节点等。但这个dom到底是什么呢?

我根据书中的描述是这样理解dom的。

dom相当于是对xml拓展后的针对html的API。

这么说可能不太好理解,那么这样说吧。

dom先将html页面映射为一个多层的有许多节点的对象,然后dom向我们提供一个操作这些映射的节点的方法。

我们通过这些操作节点的API来操作页面中的节点。

而dom节点就是我们可以通过这些API操作的节点(我是这样理解的)

在知道dom大概是啥之后,另一个问题随之而来。

DOM的级别?

我之前也在许多地方见过类似于DOM0级,DOM2级这样的概念。

那这里的DOM级别又指的是什么呢?

我们都知道,不同的浏览器之间有兼容性问题。

这种不同浏览器之间的差异,在不同的浏览器的DOM对象之间当然也是存在的。

这里就是IE在搞事了,低版本ie不管是获取节点的样式,还是其他的dom操作都和我们现在常用的有所区别。

那么DOM级别就是一个针对DOM的标准的版本,意思就是DOM对象由W3C制定了一套所有浏览器DOM都应该遵守的标准。

然后这个标准随着时间的推移有着不同的版本,对应不同版本标准的DOM对象就分出了级别。

首先是DOM0级,我们常说onclick 这些用户事件是dom0级事件,然而实际上dom0级是不存在的,这个版本指的往往是最初的DHTML的那个版本。

后面对DOM的标准的更新都以此为参考点,所以有了DOM1、DOM2、DOM3。

然后是DOM1,这个版本的标准主要针对的是规范dom映射过后的文档结构。

主要分为了两个部分,第一个部分:DOM核心 用于规定如何映射html文档结构

第二个部分:DOMhtml 定义了一些针对html的对象和方法。

这个版本是没有规定用户事件的相关标准的,所以我们常说的只有DOM0级事件 DOM2级事件 而没有DOM1级事件。

其次是DOM2,这个版本针对的就是页面了

比如一些对css样式操作的支持,扩充了鼠标和用户事件,拓展支持XML命名空间

在这个版本主要分为以下几个板块:

1. DOM视图:用于跟踪文档

2.DOM事件:事件和时间的处理

3.DOM样式:操作CSS的样式接口

4.DOM遍历和范围:如何遍历文档树和操作文档树

最后是DOM3,这个版本扩充了一些键盘的用户事件

添加了加载和保存文档的方法。

新增验证文档的方法。

对dom核心进行拓展:支持XML1.0

3.BOM 浏览器对象模型

Bom类似于DOM,他两的区别从名字上我们就可以看出端倪。

DOM是针对操作文档树的API接口,那么BOM对象就是用于操作浏览器行为的。

BOM的主要功能有:

1.弹出新浏览器窗口

2.移动、缩放、关闭窗口

3.提供浏览器的详细信息(navigator)

4.提供页面详细信息(location)

5.提供用户屏幕分辨率等信息(screen)

6.对cookie的支持

7.XMLHttpRequest 和 ActiveXObject

用于上述操作的对象可以说都是BOM

Javascript高级编程学习笔记(1)—— JS简介的更多相关文章

  1. Javascript高级编程学习笔记(3)—— JS中的数据类型(1)

    前一段时间由于事情比较多,所以笔记耽搁了一段时间,从这一篇开始我会尽快写完这个系列. 文章中有什么不足之处,还望各位大佬指出. JS中的数据类型 上一篇中我写了有关JS引入的Script标签相关的东西 ...

  2. Javascript高级编程学习笔记(5)—— JS操作符

    话不多说,开始今天的码字之旅. 突然有种日更小说的感觉,emm... 操作符 ECMAScript(JS核心)描述了一组用于操作数据值的操作符,也包括算术操作符等等 而JS中这些操作符最鲜明的特点就是 ...

  3. Javascript高级编程学习笔记(4)—— JS中的数据类型(2)

    接着昨天的文章,今天这篇文章主要讲述JS中剩余的两种数据类型String,和Object String类型 对于该类型,书中给出的解释为:由0或多个16为Unicode字符组成的字符序列. 对于JS中 ...

  4. JavaScript高级编程学习笔记(第三章之一)

    继续记笔记,JavaScript越来越有意思了. 继续... 第三章:JavaScript基础 ECMAScript语法在很大程度上借鉴了C和其它类似于C的语言,比如Java和Perl. 大小写敏感: ...

  5. Javascript高级编程学习笔记(97)—— WebGL(3) WebGL上下文(1)

    WebGL上下文 在支持WebGL的浏览器中,WebGL的名字为 "experimental-webgl",这是由于 webgl 的规范仍未制定完成 制定完成后名字就会改为简单的 ...

  6. Javascript高级编程学习笔记(57)—— 事件(1)事件流

    事件 JS与HTML的交互是通过事件实现的 而事件指的就是:文档或浏览器窗口特定的交互瞬间 可以通过侦听器来预定事件,以便在事件发生时执行相应的代码 这种模式也是设计模式中的观察者模式 事件流 有了事 ...

  7. Javascript高级编程学习笔记(43)—— 动态脚本

    动态脚本 大多数情况下,DOM操作都很简洁明了 因为DOM主要就是用来操作页面中的可视节点的 但有些时候我们又希望可以动态的来进行DOM操作 其中的一部分也就是今天我们的内容动态脚本 动态脚本是什么意 ...

  8. Javascript高级编程学习笔记(35)—— DOM(1)节点

    DOM JS由三部分组成 1.BOM 2.DOM 3.ECMAScript ES和BOM在前面的文章已经介绍过了 今天开始JS组成的最后一部分DOM(文档对象模型) 我们知道,JS中的这三个部分实际上 ...

  9. Javascript高级编程学习笔记(25)—— 函数表达式(3)模仿块级作用域

    昨天写了闭包 今天就来聊聊块级作用域的事情 在绝大多数编程语言中,都有块级作用域这个概念 什么是块级作用域呢? 前面我们在刚开始讲的时候说过,JS中的大括号(不在赋值运算符的后面)表示代码块 块级作用 ...

随机推荐

  1. 结对-(first)

    代码地址 https://github.com/CountZ3/bank.git 代码思想 允许进程动态地申请资源, 系统在每次实施资源分配之前,先计算资源分配的安全性, 若此次资源分配安全(即资源分 ...

  2. LoadRunner基础知识

    什么是自动化性能测试?利用产品.人员和流程来降低应用程序.升级程序或补丁程序部署风险的一种手段 什么是自动化性能测试的核心?向预部署系统施加工作负载,同时评估系统性能和最终用户体验 LoadRunne ...

  3. SpringBoot 整合Dubbo

    RPC框架可参考:https://blog.csdn.net/top_code/article/details/54615853 整合可参考:https://www.dalaoyang.cn/arti ...

  4. css3——border-image属性的用法

    项目需求是实现鼠标移到按钮上时,下方显示一张渐变的三角图片,于是想到使用border-image来实现. 实现;//向外偏移10px,可使边框内部的内容不是那么紧凑border-image-repea ...

  5. python_urllib2:urlerror和httperror

    urllib2的异常错误处理 在我们用urlopen或opener.open方法发出一个请求时,如果urlopen或opener.open不能处理这个response,就产生错误. 这里主要说的是UR ...

  6. RPA 介绍

    一 术语表 机器人流程自动化(RPA):在数字系统中模拟和集成人类行为以优化业务流程的软件机器人.RPA自动化捕获数据.运行应用程序.触发响应并与其他系统通信以执行各种任务. RPA路线图(RPA r ...

  7. 关于haproxy

    高性能负载均衡软件 haproxy 一.四层和七层负载均衡的区别: 所谓的四层就是OSI参考模型中的第四层,四层负载均衡也称为四层交换机,他主要是通过分析IP层及TCP/UDP层的流量实现的基于IP加 ...

  8. 【JAVA】反射总结

    反射是什么? 反射就是指程序在运行的时候可以知道一个类的自身信息. 自身信息有哪些:类方法.属性.成员变量.构造方法.包等 动态编译和静态编译  静态编译:在编译的时候进确定类型,如果绑定对象成功,n ...

  9. 【pG&&CYH-01】元旦联欢会

    题解: t1: 题解是循环矩阵 但我并没有往矩阵上想下去... 这个东西比较显然的是可以把它看成生成函数 然后就可以任意模数fft了 复杂度比题解优 $nlog^2$ t2: 随便推推式子就好了 t3 ...

  10. DevExpress控件库 开发使用经验总结3 制作项目安装包

    2015-01-27 使用DevExpress控件包开发C/S项目完成后,部署前需要制作本地安装包.本文还是使用“SetupFactory”安装工厂来制作安装包.在以前的系列文章中详细介绍过该工具的使 ...