理解Javascript_03_javascript全局观
来源:互联网 发布:明星到底有多有钱知乎 编辑:程序博客网 时间:2024/05/15 10:57
======================================================
注:本文源代码点此下载
======================================================
今天让我们站在语言的高度来看一下javascript都有点什么。因为是全局性的俯瞰,所以不针对细节作详细的讲解。
先来看一张图吧:
解释一下:
核心(ecmascript):定义了脚本语言的所有对象,属性和方法
文档对象模型(dom):html和xml应用程序接口
浏览器对象模型(bom):对浏览器窗口进行访问操作
现在来具体的讲一个各个成分:
关于ecmascript
ecmascript的工作是定义语法和对象,从最基本的数据类型、条件语句、关键字、保留字到异常处理和对象定义都是它的范畴。
在ecmascript范畴内定义的对象也叫做原生对象。
其实上它就是一套定义了语法规则的接口,然后由不同的浏览器对其进行实现,最后我们输写遵守语法规则的程序,完成应用开发需求。
关于dom
根据dom的定义(html和xml应用程序接口)可知dom由两个部分组成,针对于xml的dom即dom core和针对html的dom html。
那dom core 和dom html有什么区别与联系呢?
dom core的核心概念就是节点(node)。dom会将文档中不同类型的元素(这里不元素并不特指
这种tag,还包括属性,注释,文本之类)都看作为不同的节点。
节点结构图
上图描述了dom core的结构图,比较专业,来看一个简单的:
hello world
来看一下这段代码在标准浏览器里的dom表现:
div和span元素被展现成了一个元素节点,对应到节点结构图中的element元素
"hello world"和div与span之间的间隔,被展现成了文本节点,对应到节点结构图中的characterdate元素
dom core在解析文档时,会将所有的元素、属性、文本、注释等等视为一个节点对象(或继承自节点对象的对象,多态、向上转型),根据文本结构依次展现,最后行成了一棵"dom树"
dom html的核心概念是htmlelement,dom html会将文档中的元素(这里的元素特指这种tag,不包括注释,属性,文本)都视为htmlelement。而元素的属性,则为htmlelement的属性。
再来看一个示例:
从node接口提供的属性
myelement.attributes["id"].value;很明显myelement.attributes["id"]返回一个对象.value是得到对象的value属性
element实现的方法返回
myelement.getattributes("id");很明显此时id现在只是一个属性而已,这只是一个得到属性的操作。
其实上dom core和dom html的外部调用接口相差并不是很大,对于html文档可以用dom html进行操作,针对xhtml可以用dom core。
关于bom
老规则,先来一张图:
bom与浏览器紧密结合,这些对象也被称为是宿主对象,即由环境提供的对象。
这里要强调一个奇怪的对象global对象,它代表一个全局对象,javascript是不允许存在独立的函数,变量和常量,如果没有额外的定义,他们都作为global对象的属性或方法来看待.像parseint(),isnan(),isfinite()等等都作为global对象的方法来看待,像nan,infinity等"常量"也是global对象的属性。像boolean,string,number,regexp等内置的全局对象的构造函数也是global对象的属性.但是global对象实际上并不存在,也就是说你用global.nan访问nan将会报错。实际上它是由window来充当这个角色,并且这个过程是在javascript首次加载时进行的。
好了,好了,就到这吧,本来还有一部分,算了,以后另开一节再说吧。
======================================================
在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定 这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/
- 理解Javascript_03_javascript全局观
- 理解Javascript_03_javascript全局观
- 理解Javascript_03_javascript全局观
- 理解Javascript_03_javascript全局观
- (转)理解Javascript_03_javascript全局观
- 一深入理解Nginx的 模块化 ,全局观
- unix中的error全局理解
- 理解python GIL 全局锁
- 全局观
- 深入理解全局编录服务器GC
- 深入理解全局編錄伺服器GC
- Magento全局配置文件的一些理解
- 深入理解全局编录服务器GC
- JPA零碎要点---JTA全局事物理解
- Handler-(静态全局使用-设计)-synchronized 理解
- 深入理解全局编录服务器GC
- 理解GDT全局描述符的作用
- 从全局观思考
- R9's Blog
- Ajax技术WEB开发__WEB2.0中AJAX应用的详解
- 在Delphi 7中使用加密的SQLite
- AJAX在IE7下传回的数据页面无法显示,IE8下就没有问题
- 安装AJAX组件出现问题
- 理解Javascript_03_javascript全局观
- 简单的ajax实现
- asp.net应用程序html化的一个想法
- HTML页面加载和解析流程
- 我以前写的一些delphi程序原代码
- 关于html中的wbr
- DELPHI学习---简单类型
- 多态在 Java 和 C++ 编程语言中的实现比较
- 喜欢Delphi习惯的有福了