Javascript简史
- Javascript诞生于1995年
- 最初的主要目的是,处理以前由服务器端语言(如Perl)负责的一些输入验证操作。
- Javascript问世之前,必须把表单数据发送到服务器端才能用户是否没有填写某个必须域,是否输入了无效值。
- 自此,Javascript逐渐称为市面上常见浏览器必备的一项特色功能
- 如今,Javascript的功能早已不局限于简单的数据验证,而是具备了与浏览器窗口及其内容等几乎所有方面的交互能力
ECMAScript的产生
-
1995年,Netscape开发了LiveScript, 为了蹭Java的热度,更名为Javascript
-
Microsoft的IE对标Netscape的Navigator。
-
Microsoft在IE 3中加入了名为JScript的Javascript实现
-
至此,存在两套实现。
-
希望产生一种通用、跨平台、供应商中立的脚本语言的语法和语义
-
ECMA,是欧洲计算机制造商协会。它的39号技术委员会由各公司的程序员组成。
-
39号技术委员会,完成了ECMA-262。
-
ECMA-262 定义了ECMAScript(音ek-ma-script)
-
ECMAScript是新脚本语言标准。
-
ISO/IEC, 国际标准化组织和国际电工委员会。也采用ECMAScript作为标准(ISO/IEC-16262)
-
至此,浏览器开发商,就将ECMAScript作为Javascript的实现基础
ECMAScript和Javascript
- 虽然ECMAScript和Javascript常被用来表达相同含义。
- 但Javascript的含义却比ECMA-262中规定的,要多得多
- 一个完整的Javascript实现应该由下列三项组成:
- 核心(ECMAScript)
- 文档对象模型 (DOM)
- 浏览器对象模型 (BOM)
ECMAScript只是个标准,是个基础,可以被具体实现,变得更加完善
- ECMA262定义了ECMAScript
- ECMA262定义的ECMAScript只是基础。在此基础之上,可以构建更完善的脚本语言
- Javascript实现了ECMAScript, Adobe ActionScript也实现了ECMAScript
宿主环境提供:
- 基本的ECMAScript实现(即某种语言,例如Javascript)
- 该语言的扩展(例如Javascript的扩展,DOM),扩展是为了便于该语言与环境进行交互,以便实现针对环境的操作(例如Javascript的扩展DOM,利用ECMAScript的核心类型和语法,提供更多更具体的功能)
宿主环境包括:
- Web浏览器
- Node (这是一种服务器端Javascript平台)
- Adobe Flash
ECMAScript的版本
第一版:
- 以Javascript1.1为底稿,删除了针对特定浏览器的部分
- 支持了Unicode(从而支持多语言开发)
- 对象变成平台无关的,例如Data对象 第二版:
- 没怎么变,忽略 第三版:
- 字符串处理
- 错误定义
- 数字输出
- 正则表达式
- 新控制语句
- try-catch异常处理 第四版:
- 改动太大,后来被放弃 第五版:
- 为3.1版改名得来
- 3.1版是在第三版的基础上较小改动得来
- 新加原生JSON对象
- 继承的方法
- 高级属性定义
ECMAScript兼容
- 所谓ECMAScript的兼容,是指,ECMAScript的实现(例如Javascript)满足了多少ECMA-262描述的内容。
- ECMA-262对ECMAScript的描述迭代了多个版本,因此是讨论对某一个版本ECMA-262的兼容性。
- 对ECMAScript的兼容性,可以从2个角度分别说
- Javascript对ECMAScript的兼容性
- 浏览器对ECMAScript的兼容性
- 不同版本的Javascript所实现的ECMA-262,多寡有异
- 主流浏览器有IE, Firefox, Safari, Chrome, Opera