[TOC]
# JavaScript简介
* * * * *
JavaScript诞生于1995年。当时,它的主要目的是处理以前由服务器端语言的一些输入验证操作。
如今,JavaScript是一种专为与网页交互而设计的**脚本语言**,所谓“脚本语言”,指的是它不具备开发操作系统的能力,而是只用来编写控制其他大型应用程序的“脚本”。
一个完整的JavaScript实现应该由下列三个不同的部分组成:
* **核心(ECMAScript)**,由ECMA-262定义,提供核心语言功能。
* **文档对象模型(DOM)**,提供访问和操作网页内容的方法和接口。
* **浏览器对象模型(BOM)**,提供与浏览器交互的方法和接口。
* * * * *
### 1.1 ECMAScript
**历史**
* 1996年8月,微软模仿JavaScript开发了一种相近的语言,取名为JScript(JavaScript是Netscape的注册商标,微软不能用),首先内置于IE 3.0。Netscape公司面临丧失浏览器脚本语言的主导权的局面。
* 1997年7月,ECMA组织发布262号标准文件(ECMA-262)的第一版,规定了浏览器脚本语言的标准,并将这种语言称为ECMAScript。这个版本就是ECMAScript 1.0版。ECMAScript和JavaScript的关系是,前者是后者的规格,后者是前者的一种实现。在日常场合,这两个词是可以互换的。
ECMAScript只用来**标准化**JavaScript这种语言的**基本语法结构**,与部署环境相关的标准都由其他标准规定,比如DOM的标准就是由W3C组织(World Wide Web Consortium)制定的。
ECMAScript与Web浏览器没有依赖关系。实际上,这门语言本身并不包含输入和输出定义。
ECMA-262定义的只是这门语言的**基础**,而在此基础上可以构建更完善的脚本语言。我们常见的Web浏览器只是ECMAScript实现可能的**宿主环境之一**。
ECMA-262规定的内容包括:**语法、类型、语句、关键字、保留字、操作符、对象。**
* * * * *
### 1.2 文档对象模型(DOM)
DOM全称为**“文档对象模型”**(Document Object Model),是针对XML但经过拓展用于HTML的**应用程序接口**(API,Application Programming Interface),它的作用是将网页转为一个**JavaScript对象**,从而可以用脚本进行各种**操作**(比如增删改换内容)。
DOM整个Web页面映射为一个**多层节点结构**。即浏览器会根据DOM模型,将**结构化文档**解析成一系列**某种类型的节点**(这些节点又包含着不同类型的数据),再由这些节点组成一个树状结构(DOM Tree)。所有的节点和最终的树状结构,都有规范的对外接口。
DOM提供访问和操作网页内容的**方法和接口**。
* * * * *
### 1.3 浏览器对象模型(BOM)
BOM全称为**“浏览器对象模型”**,它提供了与**浏览器交互**的方法与接口,可以控制浏览器显示的页面以外的部分。
HTML5中,BOM的主要方面以纳入规范标准。
- 前言
- 第一章 JavaScript简介
- 第三章 基本概念
- 3.1-3.3 语法、关键字和变量
- 3.4 数据类型
- 3.5-3.6 操作符、流控制语句(暂略)
- 3.7函数
- 第四章 变量的值、作用域与内存问题
- 第五章 引用类型
- 5.1 Object类型
- 5.2 Array类型
- 5.3 Date类型
- 5.4 基本包装类型
- 5.5 单体内置对象
- 第六章 面向对象的程序设计
- 6.1 理解对象
- 6.2 创建对象
- 6.3 继承
- 第七章 函数
- 7.1 函数概述
- 7.2 闭包
- 7.3 私有变量
- 第八章 BOM
- 8.1 window对象
- 8.2 location对象
- 8.3 navigator、screen与history对象
- 第九章 DOM
- 9.1 节点层次
- 9.2 DOM操作技术
- 9.3 DOM扩展
- 9.4 DOM2和DOM3
- 第十章 事件
- 10.1 事件流
- 10.2 事件处理程序
- 10.3 事件对象
- 10.4 事件类型
- 第十一章 JSON
- 11.1-11.2 语法与序列化选项
- 第十二章 正则表达式
- 12.1 创建正则表达式
- 12.2-12.3 模式匹配与RegExp对象
- 第十三章 Ajax
- 13.1 XMLHttpRequest对象
- 你不知道的JavaScript
- 一、作用域与闭包
- 1.1 作用域
- 1.2 词法作用域
- 1.3 函数作用域与块作用域
- 1.4 提升
- 1.5 作用域闭包
- 二、this与对象原型
- 2.1 关于this
- 2.2 全面解析this
- 2.3 对象
- 2.4 混合对象“类”
- 2.5 原型
- 2.6 行为委托
- 三、类型与语法
- 3.1 类型
- 3.2 值
- 3.3 原生函数