JavaScript学习笔记(一) JavaScript简介

第1章 JavaScript简介

    学习一门语言,总要了解她的历史,就和认识一个人一样,也要去了解下他的过去。

1.1 JavaScript简史

    它最初由Netscape的Brendan Eich设计。JavaScript是甲骨文公司的注册商标。Ecma国际以JavaScript为基础制定了ECMAScript标准。JavaScript也可以用于其他场合,如服务器端编程。完整的JavaScript实现包含三个部分:ECMAScript,文档对象模型,浏览器对象模型。[5]

    Netscape在最初将其脚本语言命名为LiveScript,后来Netscape在与Sun合作之后将其改名为JavaScript。JavaScript最初受Java启发而开始设计的,目的之一就是“看上去像Java”,因此语法上有类似之处,一些名称和命名规范也借自Java。但JavaScript的主要设计原则源自Self和Scheme。JavaScript与Java名称上的近似,是当时Netscape为了营销考虑与Sun微系统达成协议的结果。为了取得技术优势,微软推出了JScript来迎战JavaScript的脚本语言。为了互用性,Ecma国际(前身为欧洲计算机制造商协会)创建了ECMA-262标准(ECMAScript)。现在两者都属于ECMAScript的实现。尽管JavaScript作为给非程序人员的脚本语言,而非作为给程序人员的脚本语言来推广和宣传,但是JavaScript具有非常丰富的特性。[6]

    发展初期,JavaScript的标准并未确定,同期有Netscape的JavaScript,微软的JScript和CEnvi的ScriptEase三足鼎立。1997年,在ECMA(欧洲计算机制造商协会)的协调下,由Netscape、Sun、微软、Borland组成的工作组确定统一标准:ECMA-262。

1.2 JavaScript实现

    JavaScript实现应该由下列不同的三个部分组成:

  • 核心(ECMAScript)

  • 文档对象模型(DOM)

  • 浏览器对象模型(BOM)

1.2.1 ECMAScript

    ECMA-262定义的ECMAScript与Web浏览器没有依赖关系。实际上,这门语言本身并不包含输入和输出的定义。ECMA-262定义的只是这门语言的基础,而在此基础之上可以构建更完善的脚本语言。我们常见的Web浏览器只是ECMAScript实现的可能的宿主环境之一。宿主环境不仅提供基本的ECMAScript实现,同时也会提供语言的扩展,以便语言与环境之间的对接交互。而这些扩展,如DOM,则利用ECMAScript的核心类型和语法提供更多更具体的功能,以便实现针对环境的操作。其他的宿主环境包括Node(一种服务端的JavaScript平台)和Adobe Flash。

    ECMAScript规定了以下几部分:

  • 语法

  • 类型

  • 语句

  • 关键字

  • 保留字

  • 操作符

  • 对象

    ECMAScript就是对实现该标准规定的各个方面内容的语言的描述。JavaScript实现了ECMAScript,Adobe ActionScript同样也实现了ECMAScript。

    ECMAScript版本主要为ECMA-262第3版和第5版

    ECMAScript兼容性列表:

浏览器
ECMAScript兼容性
浏览器
ECMAScript兼容性
Netscape Navigator 2
——
Opera 6~7.1
第2版
Netscape Navigator 3
——
Opera 7.2+
第3版
Netscape Navigator 4~4.05
——
Safari 1~2.0.x
第3版*
Netscape Navigator 4.06~4.79
第1版
Safari 3.x
第3版
Netscape 6+(Mozilla 0.6.0+)
第3版
Safari 4.x~5.x
第5版*
IE3
——
Chrome 1+
第3版
IE4
——
Firefox 1~2
第3版
IE5
第1版
Firefox 3.0.x
第3版
IE5.5~IE7
第3版
Firefox 3.5~3.6
第5版*
IE8
第5版*
Firefox 4.0+
第5版
IE9+
第5版


*不完全兼容的实现

1.2.2 文档对象模型(DOM)

    文档对象模型(DOM,Document Object Model)是针对XML但经过扩展用于HTML的应用程序编程接口(API).DOM把整个页面映射成为一个多层节点结构。HTML或者XML页面中的每个组成部分都是某种类型的节点,这些节点以包含着不同类型的数据。借助DOM提供的API,开发人员可以轻松自如地删除、添加、替换或修改任何节点。

1.为什么要使用DOM

    保证浏览器的兼容

2.DOM的级别

    DOM1级

    由两个模块组成:DOM核心和DOMHTML。其中DOM核心规定的是如何映射基于XML的文档结构,以便简化对文档中任意部分的访问和操作。DOM HTML模块则在DOM核心的基础上加以扩展,添加了针对HTML的对象和方法。

    DOM2级

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

  • DOM视图(DOM Views):定义了跟踪不同文档(如应用CSS之前和之后的文档)视图的接口。

  • DOM事件:定义了事件和事件处理接口。

  • DOM样式:定义了基于CSS为元素应用样式的接口。

  • DOM遍历和范围:定义了遍历和操作文档树的接口。

    DOM3级

    引入了以统一方式加载和保存文档的方法——在DOM加载和保存模块中定义;新增加了验证文档的方法——在DOM验证模块中定义。DOM3也对DOM核心进行了扩展,开始支持XML1.0规范,涉及XML Infoset、Xpath和XML Base。

    IE5.5~IE8 支持1级(几乎全部)

    IE9+ 1级、2级、3级

    Chorme 1+ 1级、2级(部分)

    Firefox 1+ 1级、2级(几乎全部)、3级(部分)

    

1.2.3 浏览器模型(BOM)

    BOM,浏览器对象模型,开发人员使用BOM可以控制浏览器显示的页面以外的部分。HTML5中致力于把很多BOM功能写入规范。

    从根本上讲,BOM只处理浏览器窗口和框架;但人们习惯上也把所有针对浏览器的JavaScript扩展算作BOM的一部分。下面就是一些这样的扩展

  • 弹出新浏览器窗口的功能

  • 移动、缩放和关闭浏览器窗口的功能

  • 提供浏览器详细信息的navigator对象

  • 提供浏览器所加载页面的详细信息的location对象

  • 提供用户显示器分辨率详细信息的screen对象

  • 对cookies的支持

  • 像XMLHttpRequest和IE的ActiveXObject这样的自定义对象。


第2章 在HTML中使用JavaScript

2.1 <script>元素

    HTML 4.01中为<script>定义了6个属性

  • async:可选。表示应该立即下载脚本,但不应该妨碍页面中的其他操作,比如下载其他资源或等待加载其他脚本。只对外部脚本文件有效

  • charset:可选。表示通过src属性指定的代码的字符集。

  • defer:可选。表示脚本可以延迟到文档完全被解析和显示之后再执行。只对外部脚本文件有效。IE7及更早版本也支持这个属性。

  • language:已废弃。

  • src:可选。表示包含要执行代码的外部文件。

  • type:可选。可以看成是language的替代属性;表示编写代码使用的脚本语言的内容类型。

    例:

    <script type="text/javascript" src="example.js"></script>



你可能感兴趣的:(JavaScript)