Javascript高级编程 1章1页 【Javascript简史】【ECMAScript】

99 阅读3分钟

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