少侠学代码系列(二)->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这样自定义对象
帅气的我:少侠,我困了,能睡一会吗
少侠:真是懒驴上磨屎尿多,去睡吧,准了
帅气的我:好嘞
少侠学代码系列(二)->JS实现的更多相关文章
- 少侠学代码系列(一)->JS起源
少侠:喂,有人吗?赶紧出来接客了,有没有人啊 帅气的我:来了来了,少侠有何吩咐? 少侠:把你们店里的秘籍呈上来我要学JS 帅气的我:少侠,别这样,我们秘籍是不外传的,祖上传下来的规矩,传人妖不传男女. ...
- [Python] 文科生零基础学编程系列二——数据类型、变量、常量的基础概念
上一篇:[Python] 文科生零基础学编程系列--对象.集合.属性.方法的基本定义 下一篇: (仍先以最简单的Excel的VBA为例,语法与Python不同,但概念和逻辑需要理解透彻) p.p1 { ...
- 辛巴学院-Unity-剑英陪你零基础学c#系列(二)顺序
这不是草稿 辛巴学院:正大光明的不务正业. 上一次的教程写出来之后,反馈还是挺多的,有很多都做了修改,也有一些让人崩溃,不得不说上几句.有些人有些很奇怪的地方,你写篇东西,被看了以后不说他感觉怎么 ...
- 一步一步学EF系列二【Fluent API的方式来处理实体与数据表之间的映射关系】
EF里面的默认配置有两个方法,一个是用Data Annotations(在命名空间System.ComponentModel.DataAnnotations;),直接作用于类的属性上面,还有一个就是F ...
- D&F学数据结构系列——二叉堆
二叉堆(binary heap) 二叉堆数据结构是一种数组对象,它可以被视为一棵完全二叉树.同二叉查找树一样,堆也有两个性质,即结构性和堆序性.对于数组中任意位置i上的元素,其左儿子在位置2i上,右儿 ...
- [Python] 文科生零基础学编程系列三——数据运算符的基本类别
上一篇:[Python] 文科生零基础学编程系列二--数据类型.变量.常量的基础概念 下一篇: ※ 程序的执行过程,就是对数据进行运算的过程. 不同的数据类型,可以进行不同的运算, 按照数据运算类型的 ...
- 从零开始学 Web 之 Vue.js(二)过滤器,按键修饰符,自定义指令
大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...
- .net基础学java系列(二)IDE 之 插件
上一篇文章.net基础学java系列(二)IDE "扎实的基础"+"宽广的视野",基本可以帮我们摆脱码畜.码奴.码农的命运! IT领袖:IT大哥:IT精英:IT ...
- .net基础学java系列(二)IDE
上一篇文章.net基础学java系列(一)视野 废话: "视野"这篇文章,管理员说它比较空洞!也许初学者看不懂表格中的大部分内容!多年的neter估计也有很多不知道的! 有.net ...
随机推荐
- Socket看法
Socket通常也称做”套接字“,用于描述IP地址和端口,废话不多说,它就是网络通信过程中端点的抽象表示. Socket又称"套接字",应用程序通常通过"套接字" ...
- [Swift]LeetCode1002. 查找常用字符 | Find Common Characters
Given an array A of strings made only from lowercase letters, return a list of all characters that s ...
- 武汉软件开发:一看就会的wpf入门教程
据了解,目前武汉软件开发市场关于PC端桌面开发的技术主要有两块:winform和wpf.wpf是微软既winform之后推出的一套新的桌面开发技术.采用数据驱动的方式可以轻松编写出非常炫的界面. 1. ...
- Linux 虚拟网络设备详解之 Bridge 网桥
本文首发于我的公众号 Linux云计算网络(id: cloud_dev),专注于干货分享,号内有 10T 书籍和视频资源,后台回复「1024」即可领取,欢迎大家关注,二维码文末可以扫. 前面几篇文章介 ...
- Jedis与Luttuce区别
如果你在网上搜索Redis 的Java客户端,你会发现,大多数文献介绍的都是 Jedis. 不可否认,Jedis是一个优秀的基于Java语言的Redis客户端. 但是,其不足也很明显:Jedis在实现 ...
- spring boot -spring data-redis
//添加依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId> ...
- shell的exec命令
工作中遇到运维人员挂supervisor的时候建议启动使用命令control.sh start, 并且在control.sh 里面启动命令: exec -c ./bin/xxx -f config/x ...
- zabbix系列之九——添加钉钉告警
一.添加钉钉机器人 1. 2. 复制webhook后面脚本用到:https://oapi.dingtalk.com/robot/send?access_token=36e69dd50bbcc54b7b ...
- tomcat的catalina.out日志按自定义时间日式进行分割
使用cronolog对tomcat的日志进行自定义日期格式的切割,方便日志的整理和遇到问题日志的排查! 1.安装cronolog工具1.1 下载 cronolog 地址:网上很多下载地址这里就不在累赘 ...
- MetaEditor中MQL使用方法
MT4程序--帮助--MQL5文档,转到网页,切换到中文,点击旁边搜索图标. MetaEditor编辑器,点击相应关键字,按F1键,即可启动MT4对应的MQL4的对应关键字用法帮助.但是英文. 时间序 ...