Skip to content

js 简介

JavaScript 早期主要用途是代替 Perl 等服务器端语言处理输入验证。如今,JavaScript 的应用也不再局限于数据验证,而是渗透到浏览器窗口及其内容的方方面面。JavaScript 已被公认为主流的编程语言,能够实现复杂的计算与交互,包括闭包、匿名(lambda)函数,甚至元编程等特性。不仅是桌面浏览器,手机浏览器和屏幕阅读器也支持 JavaScript,其重要性可见一斑。

历史

1995 年,网景公司一位名叫 Brendan Eich 的工程师开发一个叫 Mocha(后来改名为 LiveScript)的脚本语言,后来网景把 LiveScript 改名为 JavaScript,以便搭上媒体当时热烈炒作 Java 的顺风车。

由于 JavaScript 1.0 很成功,微软决定向 IE 投入更多资源发布了 IE3,其中包含自己名为 JScript(叫这个名字是为了避免与网景发生许可纠纷)的 JavaScript 实现。

微软的 JavaScript 实现意味着出现了两个版本,JavaScript 还没有规范其语法或特性的标准,两个版本并存让这个问题更加突出了。随着业界担忧日甚,JavaScript 终于踏上了标准化的征程。

1997 年,第 39 技术委员会(TC39)承担了“标准化一门通用、跨平台、厂商中立的脚本语言的语法和语义”的任务。

1998 年,国际标准化组织(ISO)和国际电工委员会(IEC)也将 ECMAScript 采纳为标准(ISO/IEC-16262)。自此以后,各家浏览器均以 ECMAScript 作为自己 JavaScript 实现的依据,虽然具体实现各有不同。

JavaScript 实现

  • 核心(ECMAScript)
  • 文档对象模型(DOM)
  • 浏览器对象模型(BOM)

ECMAScript

ECMAScript 是一种规范,由 ECMA-262 定义并提供核心功能。它定义了语法,类型,语句,关键字,保留字,操作符,全局对象。

Web 浏览器只是 ECMAScript 实现存在的一种宿主环境(host environment)。宿主环境提供 ECMAScript 的基准实现和与环境自身交互必需的扩展。扩展(比如 DOM)使用 ECMAScript 核心类型和语法,提供特定于环境的额外功能。其他宿主环境还有服务器端 JavaScript 平台 Node.js 。

DOM

文档对象模型(DOM, Document Object Model),提供与网页内容交互的方法和接口。

BOM

浏览器对象模型(BOM),提供与浏览器交互的方法和接口。

  • 弹出新浏览器窗口的能力;
  • 移动、缩放和关闭浏览器窗口的能力;
  • navigator 对象,提供关于浏览器的详尽信息;
  • location 对象,提供浏览器加载页面的详尽信息;
  • screen 对象,提供关于用户屏幕分辨率的详尽信息;
  • performance 对象,提供浏览器内存占用、导航行为和时间统计的详尽信息;
  • 对 cookie 的支持;
  • 其他自定义对象,如 XMLHttpRequest 和 IE 的 ActiveXObject。