从全局看javascript
![]() 对技术细节不做描述,从太空中看地球一样,你的肉眼是看不清你的女朋友或男朋友在哪里 javascript简述: JavaScript是一种基于对象和事件驱动并具有相对安全性的客户端脚本语言。同时也是一种广泛用于客户端Web开发的脚本语言,常用来给HTML网页添加动态功能,比如响应用户的各种操作。它最初由网景公司的Brendan Eich设计,是一种动态、弱类型、基于原型的语言,内置支持类。 [1] Ecma国际以JavaScript为基础制定了ECMAScript标准。JavaScript也可以用于其他场合,如服务器端编程。 完整的JavaScript实现包含三个部分:ECMAScript,文档对象模型,字节顺序记号。 从语言的角度看javascript,你会发现真的是很简单,这门语言模块比较清晰,你或许会说:噢,原来如此 ![]() 看到了吧,结构清晰,感觉就是几块甜美的蛋糕让人垂涎三尺 说明:
ECMAScript【核心javascript】 ECMAScript是一种由Ecma国际(前身为欧洲计算机制造商协会)通过ECMA-262标准化的脚本程序设计语言。这种语言在万维网上应用广泛,它往往被称为Javascript或JScript,但实际上后两者是ECMA-262标准的实现和扩展。 ECMAScript的工作是定义语法和对象,从最基本的数据类型、条件语句、关键字、保留字到异常处理和对象定义都是它的范畴。在ECMAScript范畴内定义的对象也叫做原生对象。其实上它就是一套定义了语法规则的接口,然后由不同的浏览器对其进行实现,最后我们输写遵守语法规则的程序,完成应用开发需求。
看到上面的图,可以领略到ECMAScript的家族是如此的庞大
根据DOM的定义(HTML和XML应用程序接口)可知DOM由两个部分组成,针对于XML的DOM即DOM Core和针对HTML的DOM HTML。 那DOM Core 和DOM HTML有什么区别与联系呢? DOM Core的核心概念就是节点(Node)。DOM会将文档中不同类型的元素(这里不元素并不特指<div>这种tag,还包括属性,注释,文本之类)都看作为不同的节点。 节点结构图
上图描述了DOM CORE的结构图,比较专业,来看一个简单的:
![]() div和span元素被展现成了一个元素节点,对应到节点结构图中的Element元素 "hello world"和div与span之间的间隔,被展现成了文本节点,对应到节点结构图中的CharacterDate元素 DOM CORE在解析文档时,会将所有的元素、属性、文本、注释等等视为一个节点对象(或继承自节点对象的对象,多态、向上转型),根据文本结构依次展现,最后行成了一棵"DOM树" DOM HTML的核心概念是HTMLElement,DOM HTML会将文档中的元素(这里的元素特指<body>这种tag,不包括注释,属性,文本)都视为HTMLElement。而元素的属性,则为HTMLElement的属性。 再来看一个示例: 从Node接口提供的属性
其实上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首次加载时进行的。 总结: javascript是一门自由的语言,自由到让你不知所措,函数式编程和面向对象编程的模式可以交叉使用,顺便选择合适的设计模式会让你对这门语言另眼相看,的确,后面会有更多让你意外的事情发生。 |