JavaScript程序设计-简介
文档对象模型(DOM, Document Object Model)是针对XML但经过扩展用于HTML的应用程序编程接口API。DOM把整个页面映射为一个多层节点结构。HTML或XML页面中的每个组成部分都是某种类型的节点,这些节点又包含着不同类型的数据。
DOM1级(DOM Level 1)由两个模块组成:DOM核心(DOM Core)和DOM HTML。DOM核心规定如何映射基于XML的文档结构,以便简化对文档中任意部分的访问和操作。DOM HTML模块在DOM核心的基础上加以扩展,添加了针对HTML的对象和方法。
如果说DOM1级的目标主要是映射文档的结构,那么DOM2级在原来DOM基础上又扩充了(DHTML一直都支持的)鼠标和用户界面事件、范围、遍历(迭代DOM文档的方法)等细分模块,而且通过对象接口增加了对CSS(Cascading Style Sheets,层叠样式表)的支持。DOM1级中的DOM核心模块也经过扩展开始支持XML命名空间。DOM2级引入下列新模块,也给出了众多新类型和新接口的定义。
- DOM视图(DOM Views):定义了跟踪不同文档(例如,应用CSS之前和之后的文档)视图的接口
- DOM事件(DOM Events):定义了事件和事件处理的接口
- DOM样式(DOM Style):定义了基于CSS为元素应用样式的接口
- DOM遍历和范围(DOM Traversal and Range):定义了遍历和操作文档树的接口
DOM3级进一步扩展了DOM,引入了以统一方式加载和保存文档的方法-在DOM加载和保存(DOM Load and Save)模块中定义;新增了验证文档的方法-在DOM验证(DOM Validation)模块中定义。DOM3级也对DOM核心进行了扩展,开始支持XML 1.0规范,涉及XML Infoset、XPath和XML Base。
浏览器对象模型(BOM, Browser Object Model)
开发人员使用BOM可以控制浏览器显示的页面以外的部分。而BOM真正与众不同的地方是它作为JavaScript实现的一部分但却没有相关的标准。这个问题在HTML5中得到解决,HTML5致力于把很多BOM功能写入正式规范。从根本上讲,BOM只处理浏览器窗口和框架;但人们习惯上把所有针对浏览器的JavaScript扩展作为BOM的一部分。
- 弹出新浏览器窗口的功能
- 移动、缩放和关闭浏览器窗口的功能
- 提供浏览器详细信息的navigator对象
- 提供浏览器所加载页面的详细信息的location对象
- 提供用户显示器分辨率详细信息的screen对象
- 对cookies的支持
- 像XMLHttpRequest和IE的ActiveXObject这样的自定义对象
由于没有BOM标准可以遵循,因此每个浏览器都有自己的实现。虽然也存在一些事实标准,例如要有window对象和navigator对象等,但每个浏览器都会为这两个对象乃至其他对象定义自己的属性和方法。现在有了HTML5,BOM实现的细节有望朝兼容性越来越高的方向发展。
HTML 4.01为<script>定义了下列6个属性:
- async:可选。表示应该立即下载脚本,但不应该妨碍页面中的其他操作,比如下载其他资源或等待加载其他脚本。只对外部脚本文件有效。
- charset:可选。表示通过src属性指定的代码的字符集。由于大多数浏览器会忽略它的值,因此这个属性很少有人用。
- defer:可选。表示脚本可以延迟到文档完全被解析和显示之后再执行。只对外部脚本文件有效。IE7及更早版本对嵌入脚本也支持这个属性。
- language:已废弃。原来用于表示编写代码使用的脚本语言。大多数浏览器会忽略这个属性,因此也没有必要再用了。
- src:可选。表示包含要执行代码的外部文件。
- type:可选。可以看成是language的替代属性;表示编写代码使用的脚本语言的内容类型(也称为MIME类型)。虽然text/javascript和text/ecmascript都已经不被推荐使用,但人们一直以来使用的都还是text/javascript。实际上,服务器在传送JavaScript文件时使用的MIME类型通常是application/x-javascript,但在type中设置这个值却可能导致脚本被忽略。另外,在非IE浏览器中还可以使用以下值:application/javascript和application/ecmascript。考虑到约定俗称和最大限度的浏览器兼容性,目前type属性的值依旧还是text/javascript。不过,这个属性并不是必需的,如果没有指定这个属性,则其默认值仍为text/javascript。
使用<script>元素的方式有两种:直接在页面中嵌入JavaScript代码和包含外部JavaScript文件。如果在文档的<head>元素中包含所以JavaScript文件,意味着必须等到全部JavaScript代码都被下载、解析和执行完成后,才能开始呈现页面的内容(浏览器在遇到<body>标签时才开始呈现内容)。为了避免这个问题,一般都把JavaScript引用放在<body>元素中页面内容的后面,这样,在解析包含的JavaScript代码之前,页面的内容将全部呈现在浏览器中。
JavaScript程序设计-简介相关推荐
- 计算机高级程序开发,2017计算机javascript高级程序设计简介
2017计算机javascript高级程序设计简介 在JavaScript面世之初,没有人会想到它会被应用的如此广泛,也远比一般人想象中的要复杂强大的多.下面小编整理的关于计算机javascript高 ...
- linux 怎么调试 js,JavaScript程序设计之JS调试_javascript技巧
本文主要通过一个加法器,介绍JS如何调试.先上代码: 效果: test.html: 计算器 计算器 + = 计算 demo.js /** * Created by yanzi on 15/12/8. ...
- 《JavaScript程序设计》课堂交流区问题汇总(进阶篇)
本课程为网易云课堂 - - 前端开发工程师 - - <JavaScript程序设计>学习总结 问题一:复制对象 通过课程学习我们知道,对象作为引用类型,使用运算符=时,只是复制了对象的 ...
- 《 JavaScript程序设计》—— 第五章 函数
5.1 黑盒 从概念上讲,函数接受输入,进行计算,然后产生输出.下图是一个函数黑盒示意图,它计算一个账户在t年之后的余额,其初始余额为p,年利率为r,每年取n次复利. 要使用这个函数,只需向函数发送四 ...
- 基于SSE指令集的程序设计简介
Intel公司的单指令多数据流式扩展(SSE,StreamingSIMD Extensions)技术能够有效增强CPU浮点运算的能力.Visual Studio .NET 2003提供了对SSE指令集 ...
- headFirst JavaScript 程序设计笔记
前言 如何使用本书 我们视读者为学习者 怎样才能学会东西呢?首先你得明白,其次你得牢记,但这并不意味着死记硬背.认知科 学.神经生物学和教育心理学的最新研究表明,学习过程远比阅读文字要丰富得多.我们 ...
- javascript语言简介
目录 一.简介 二.体系 三.CSS,javascript的引入方式 1.行内 2.文本内部 3.外部链接 4.js的输出方式 5.算法的特点 一.简介 JavaScript(Java脚本)是一种基于 ...
- ArcGIS API for JavaScript :简介与快速上手
一.简介 子路曰:"卫君待子而为政,子将奚先?"子曰:"必也正名乎!" 孔子认为,为政最先要做的事情是正名,名不正则言不顺. 语言是上天赋予人类的神奇能力,而& ...
- 从零开始学JavaScript一(简介)
概要:JavaScript的组成. 各个组成部分的作用 . 一.JavaScript是一种专为与网页交互而设计的脚本语言,它的的组成 Javascript ECMAScript(核心) DOM ...
最新文章
- mysql实验报告四_实验报告四
- 简洁好用的项目管理工具推荐~马起来
- osg 倾斜数据纹理_GIS数据、服务、数据库
- Thinkphp小知识点
- mogodb 的自定义函数定义及引用
- 初一七年级计算机信息全册教案,新川教版七年级信息技术全册教案(全册)
- linux 选择文件指定的行数据类型,06练习题
- 关于Spring Cloud Eureka
- AUFN Carplay盒子固件级视频及图文教程!
- 计算机科学与技术专业毕业答辨问题,计算机科学与技术毕业论文题目参考
- Mybatis实现mysql分页查询
- 汇编中的10H中断int 10h详细说明
- 从企业版BOSS直聘,看求职简历技巧
- 计算机科学技术的想象作文600,关于科学的想象作文
- 吴恩达深度学习学习笔记——C1W2——神经网络基础——练习题
- C#下usb条码扫描枪的钩子实现的改进
- 转载:林锐:大学十年(一个程序员的路程)(全)
- 信息传播学习笔记(1)——SIS模型原理与公式推导
- 神奇的物理学(六)量子电动力学的应用
- 前端开发中常用的英语单词短语总结
热门文章
- Echarts3.0入门基础与实战(学习笔记)
- 一阶系统的时域和频域分析
- HBase问题诊断 – RegionServer宕机
- iOS 在线JSON转模型工具(Swift、Objective-C、Java)
- 苹果手机怎么恢复丢失的数据?果粉必看!
- matlab编写关于离散的傅里叶变换
- 修复liteIDE自动补全功能
- 计算机语言安装不上,安装程序包的语言不受系统支持,详细教您如何解决Office2010安装时语言不受系统支持...
- NC单据模板控制公式的使用
- android studio 安装apk失败,AndroidStudio apk安装失败总结