javaScript历史
前辈曰,“熟悉历史不是目的,而是为了更好的了解和学习这门语言。”
- 浏览器大战在开发层面造成了怎样的影响?
1.ECMA标准的制定,是由各大浏览器厂商和爱好者共通协商后决定的,这就造成标准势必落后于浏览器实现,同时由于技术原因,某些版本的浏览器无法实现新的标准特性,浏览器兼容性产生的原因之一。
2.多个浏览器厂商之间采用的技术不同,其次也为了标新立异,有时候不按标准实现。 - javaScript的核心是什么?,它和浏览器的关系是什么?
- 梳理js学习的骨架?
javaScript诞生的背景
JavaScript 诞生于 1995 年。它当时的目的是为了对表单输入的内容进行验证。因为在 JavaScript 问世之前,表单的验证都是通过服务器端验证的。而当时都是电话拨号上网的年代,服务器 验证数据是一件非常痛苦的事情。
浏览器大战——三足鼎立的时代
1、引子
大概在 1992 年,有一家公司 Nombas 开发一种叫做 C--(C-minus-minus,简称 Cmm)的嵌 入式脚本语言。后应觉得名字比较晦气,最终改名为 ScripEase。而这种可以嵌入网页中的 脚本的理念将成为因特网的一块重要基石。
诞生 1995 年
当时工作在 Netscape(网景)公司的布兰登(BrendanEich)为解决类似于“向服务 器提交数据之前验证”的问题。在 NetscapeNavigator2.0 与 Sun 公司联手开发一个称之为 LiveScript 的脚本语言。为了营销便利,之后更名为 JavaScript(目的是在 Java 这课大树下好 乘凉)。
邪恶的后来者
因为 JavaScript1.0 如此成功,所以微软也决定进军浏览器,发布了 IE3.0 并搭载了一 个 JavaScript 的克隆版,叫做 JScript(这样命名是为了避免与 Netscape 潜在的许可纠纷), 并且也提供了自己的 VBScript。
标准的重要
在微软进入后,有 3 种不同的 JavaScript 版本同时存在:NetscapeNavigator 3.0 中的 JavaScript、IE 中的 JScript 以及 CEnvi 中的 ScriptEase。与 C 和其他编程语言不同的是, JavaScript 并没有一个标准来统一其语法或特性,而这 3 种不同的版本恰恰突出了这个问题。 随着业界担心的增加,这个语言标准化显然已经势在必行。
ECMA ECMA ECMA ECMA 1997 年,JavaScript1.1 作为一个草案提交给欧洲计算机制造商协会(ECMA)。第 39 技术委员会(TC39)被委派来“标准化一个通用、跨平台、中立于厂商的脚本语言的语法 和语义”(http://www.ecma-international.org/memento/TC39.htm)。由来自 Netscape、Sun、微 软、Borland 和其他一些对脚本编程感兴趣的公司的程序员组成的 TC39 锤炼出了 ECMA-262,该标准定义了叫做 ECMAScript 的全新脚本语言。
灵敏的微软、迟钝的网景
虽然网景开发了 JavaScript 并首先提交给 ECMA 标准化,但因计划改写整个浏览器引擎 的缘故,网景晚了整整一年才推出“完全遵循 ECMA 规范”的 JavaScript1.3。而微软早在一 年前就推出了“完全遵循 ECMA 规范”的 IE4.0。这导致一个直接恶果:JScript 成为 JavaScript 语言的事实标准。
标准的发展
在接下来的几年里,国际标准化组织及国际电工委员会(ISO/IEC)也采纳 ECMAScript 作为标准(ISO/IEC-16262)。从此,Web 浏览器就开始努力(虽然有着不同程度的成功和失 败)将 ECMAScript 作为 JavaScript 实现的基础。
山寨打败原创 JScript 成为 JavaScript 语言的事实标准,加上 Windows 绑定着 IE 浏览器,几乎占据全 部市场份额,因此,1999 年之后,所有的网页都是基于 JScript 来开发的。而 JavaScript1.x,变成可怜的兼容者。
JavaScript核心
虽然 JavaScript 和 ECMAScript 通常被人们用来表达相同的含义,但 JavaScript 的含义 却比ECMA-262中规定的要多得多。一个完整的JavaScript应该由下列三个不同的部分组成。
1.核心(ECMAScript) 2.文档对象模型(DOM) 3.浏览器对象模型(BOM)
ECMAScript 由 ECMAScript-262 定义的 ECMAScript 与 Web 浏览器没有依赖关系。ECMAScript 定 义的只是这门语言的基础,而在此基础之上可以构建更完善的脚本语言。我们常见的 Web 浏览器只是 ECMAScript 实现可能的宿主环境之一。 既然他不依赖于 Web 浏览器,那么他还在哪些环境中寄宿呢?比如:ActionScript、 ScriptEase 等。而他的组成部分有:语法、类型、语句、关键字、保留字、操作符、对象等。