JavaScript 进阶营

javascript 高级程序设计(1-2章)

2018-05-19  本文已影响55人  穿牛仔裤的蚊子

第一章:javascript简介

本章内容:

javascript

关于ECMAScript

ECMA - 欧洲计算机制造协会

它规定了这门语言下列组成部分:

ECMAScript就是对实现该标准规定的各个方面内容的语言描述。

然后由不同的浏览器对其进行实现,最后我们输写遵守语法规则的程序,完成应用开发需求。

关于DOM

文档对象模型(DOM, Document Object Model)是针对XML但经过扩展用于html的应用程序编程接口。

DOM1级

主要目标:映射文档的结构。

根据DOM的定义(HTML和XML应用程序接口)可知DOM由两个部分组成,针对于XML的DOM即DOM Core和针对HTML的DOM HTML

那DOM Core 和DOM HTML有什么区别与联系呢?

DOM Core的核心概念就是节点(Node)。DOM会将文档中不同类型的元素(这里元素并不特指<div>这种tag,还包括属性,注释,文本之类)都看作为不同的节点。

节点结构图

上图描述了DOM CORE的结构图,比较专业,来看一个简单的:

<div id="container">
    <span>hello world</span>
</div>    

来看一下这段代码在标准浏览器里的DOM表现:

DOM树

div和span元素被展现成了一个元素节点,对应到节点结构图中的Element元素

"hello world"和div与span之间的间隔,被展现成了文本节点,对应到节点结构图中的CharacterDate元素

DOM CORE在解析文档时,会将所有的元素、属性、文本、注释等等视为一个节点对象(或继承自节点对象的对象,多态、向上转型),根据文本结构依次展现,最后行成了一棵"DOM树"

DOM HTML的核心概念是HTMLElement,DOM HTML会将文档中的元素(这里的元素特指<body>这种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。

DOM2级

DOM2引入了新模块,也给出了众多新类型和新接口的定义。

DOM3级

进一步的扩展DOM,引入以同一方式加载和保存文档的方法--在DOM加载和保存(DOM Load and Save)模块中定义;新增验证方法--在DOM验证(DOM Validation)模块中定义。DOM3级也对DOM核心进行了扩展,开始支持XML1.0规范,涉及XML Inforset、XPath、和XML Base。

关于BOM

可以访问和操作浏览器窗口的浏览器对象模型(BOM, Browser Object Model)

BOM

BOM与浏览器紧密结合,这些对象也被称为是宿主对象,即由环境提供的对象。

下面是一些这样的扩展:

这里要强调一个奇怪的对象Global对象,它代表一个全局对象,Javascript是不允许存在独立的函数,变量和常量,如果没有额外的定义,他们都作为Global对象的属性或方法来看待.像parseInt(),isNaN(),isFinite()等等都作为Global对象的方法来看待,像NaN,Infinity等"常量"也是Global对象的属性。像Boolean,String,Number,RegExp等内置的全局对象的构造函数也是Global对象的属性.但是Global对象实际上并不存在,也就是说你用Global.NaN访问NaN将会报错。实际上它是由window来充当这个角色,并且这个过程是在javascript首次加载时进行的。

小结:

javascript是一种专门为网页交互而设计的脚本语言,由以下三个部分组成:

参考:

理解Javascript_03_javascript全局观


第二章:在html中使用javascript

本章内容:

在html文档里嵌入客户端的javascript有四种方法:

2.1.3 异步脚本

<script type='text/javascript' src='sample.js' async ></script>

async只适用于外部脚本文件,并告诉浏览器立即下载文件,但与defer不同的是,async的脚本并不保证按照指定的他们的先后顺序来执行

小结:

把javascript插入html页面中使用<script>元素。使用这个可以把javascript嵌入到html页面中,让脚本与标记混合在一起。也可以包含外部的javascript文件。而我们需要注意的有:

上一篇 下一篇

猜你喜欢

热点阅读