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

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. poj1456 Supermarket 贪心+并查集

    题目链接:http://poj.org/problem?id=1456 题意:有n个物品(0 <= n <= 10000) ,每个物品有一个价格pi和一个保质期di (1 <= pi ...

  2. Redis持久化persistence

    一.前言 由于Redis的数据都存放在内存中,如果没有配置持久化,redis重启后数据就全丢失了,于是需要开启redis的持久化功能,将数据保存到磁盘上,当redis重启后,可以从磁盘中恢复数据. R ...

  3. UOJ#440. 【NOIP2018】填数游戏 动态规划

    原文链接www.cnblogs.com/zhouzhendong/p/UOJ440.html 前言 菜鸡选手到省选了才做联赛题. 题解 首先我们分析一下性质: 1. 假如一个格子是 0,那么它的右上角 ...

  4. 随笔【js】

    1.js是大小写敏感的 2. 区别 getElementBy ID , getElementsBy Name,  getElementsBy TagName以人来举例说明,人有能标识身份的身份证,有姓 ...

  5. python:PATH、PYTHONPATH 和 sys.path 的区别

    python:PATH.PYTHONPATH 和 sys.path 的区别 共同点 所有在它们的路径里面的 moduel 都可以被 import PATH 在 PATH 中的一些命令,例如 *.exe ...

  6. DICOM图像转出为bmp格式图像方法(matlab程序实现)

    在matlab中用dicomread读取dicom文件后,生成一个MxN矩阵(对应图像像素个数),每个像素灰度数据是int16格式 但是bmp图像灰度是int8格式的(灰度范围0~255),所以若想把 ...

  7. 输出九九乘法表(Python、Java、C、C++、JavaScript)

    最近在学python的过程中,接触到了循环的知识,以及这个案例,于是写了下!感觉还不错,然后就用其它几种语言也试了下!! 接下来,就跟大家分享下实现方法!! 实现输出九九乘法表,主要用到的是循环的知识 ...

  8. Java 平时作业四

    编写一个Java程序实现返回指定目录及其子目录下扩展名为*.pdf的所有文件名. 扩展: isFile public boolean isFile() 测试此抽象路径名表示的文件是否为普通文件. 如果 ...

  9. PHP通过get方法获得form表单数据方法总结

    下面给大家带来具体的代码示例: 1.form表单代码示例(表单get提交)   1 2 3 4 5 6 7 8 9 10 11 12 13 14 <head>   <meta cha ...

  10. Hive+Sqoop+Mysql整合

    Hive+Sqoop+Mysql整合 在本文中,LZ随意想到了一个场景: 车,道路,监控,摄像头 即当一辆车在道路上面行驶的时候,道路上面的监控点里面的摄像头就会对车进行数据采集. 我们对采集的数据进 ...