JavaScript学习之了解JavaScript

2009年10月10日 | 标签: , ,

其实对JavaScript很了解的朋友应该知道,JavaScript的诞生及发展是极其曲折的。。。

说起这,就不得不谈到Web标准。当初w3c在制定web标准时,基本包含了结构(Xhtml)、表现(Css)和行为(Dom)这三个方面的内容。可能对于网页设计人员来说,前两者通常会占据着核心的地位;担随着web技术的不断发展,对DOM进行操作去改善文档的可交互性变越来越受到人们的重视。而使网页具备这种可交互性的程序设计语言就是JavaScript。

JavaScript最早是由Netscape公司和Sun公司合作开发的,其第一个版本的推出是运行在Netscape Navigator 2浏览器中,这一年是1995年。当时的浏览器市场还是由Netscape Navigator所主宰,但另一家公司也盯上了这块大肥肉,开始研发推出了他们自己的VBScript语言并以Jscript命名,这家公司就是微软。接下来火药味很浓了,面对后者的竞争,Netscape公司和Sun公司找了个后台–ECMA(欧洲计算机制造商协会),对Js进行了标准化,这样又产生了一个新的名字ECMAScript。但这个名字并没有流行开,一直人们谈论的Javascript实际上就是ECMAScript。这个时候微软也在不停的修炼内功,等到1997年,双方各自发布了4.0版本的浏览器,这两种浏览器对它们早期版本都进行了许多改进。各自对Dom通过JavaScript完成的功能大大增加,但这个时候,问题也就渐渐浮出水面。因为NN4和IE4浏览器使用的是不同且不兼容的DOM,所以要实现相同的效果,需要程序员采用完全不同的方法去实现。这样的情况越演越烈,导致出现了一种很可笑的局面:程序员在编写Dom脚本代码时,必须知道他们将运行在哪种浏览器环境里。在实际工作中,许多脚本都不得不编写两次;同时,为了确保能正确的向不同浏览器提供与之相应的脚本,程序要还必须编写大量的代码区检测在客户端运行的浏览器到底是哪一种?

就在浏览器制造商各行“魔”道、编程者愤怒抱怨时,幕后老大w3c出来控制局面,推出了一个标准化的DOM,将Netscape、微软和其他一些浏览器制造商聚在一起,联手制定了新的标准(这一招用的太狠了,标准有了,你们回去都好好执行吧,将皮球又推给了浏览器制造商。)。

面对各方面的压力,浏览器制造商们在其后来推出的下一代浏览器产品对web标准的支持都得到了极大的改善。微软公司在推出的新版本IE5中内建了对W3C制定的DOM的支持,但同时继续支持其专有的Microsoft Dom;而Netscape公司则采取了个更为坚决果断的做法,他们跳过了原NN4版本,直接升级为NN6,新版本使用了一个与以前完全不同的呈现引擎,新引擎对css提供了更多更好的支持。NN6也支持标准化的DOM,但不在向后兼容早期的Nerscape DOM(精神可嘉!)。

虽然Netscape公司占得先机,笑到最后的却是微软。随着越来越多的个人电脑被Windows操作系统所霸占,预装在该系统的IE6浏览器也占据了无可撼动的地位,这就导致后来出现的不同局面: Netscape公司于98年被美国在线(AOL)收购,在2008年3月1日,NN浏览器彻底告别历史舞台(当然这是后话);而微软却迎来了最好的发展时机,逐渐将IE浏览器市场份额占领到77%左右。这个时候,另一浏览器也异军突起,这就是大名鼎鼎的Mozilla Firefox(火狐)浏览器。

言归正传,随着w3c标准的制定和导向,各大厂商在其后升级的浏览器版本中,逐渐对DOM规范的支持越来越完善,虽然未及完美,但对开发者来说,在编写JavaScript代码时也几乎不用在考虑他们将运行在何种浏览器环境下了。对于现在的我们来说,更是得益于这种进步,接下来就需要不断的努力了。。。

一些后话:

1、其实最早的JavaScript是叫LiveScript,后来选择“”究其原因可能是为了与Sun公司的“Java语言”套近乎,有种系出名门的感觉。但适得其反,这两种完全不同的语言给后来学习者带来了很大的混淆。
2、从各浏览器的不同命运可以看出,技术和实力是最大的竞争力。就漏洞百出、破烂不堪的IE6浏览器对前端工作者来讲,应该是恨之入骨,无不想卸之而后快!!而微软老大为什么不回收而敢于惹众怒呢?
3、Mozilla Firefox、Google Chrome等浏览器一定要争气!!相信只有你们的强力发展才可以对MS造成冲击,让其走上正道,早日与世界“接轨”。现在看来,的确是有效的。IE8的推出,让人眼前一亮,无论是(X)html、Css,还是Js Dom方面,都与标准越来越近了。作为页面开发者,虽然受益,但任重而道远。未来,我们工作的重心不应该再对付各种浏览器的兼容问题,而是其技术本身。将这门如何将这门语言最大限度的应用于前端开发中是摆在我们面前的又一难题,这一定是很有挑战性的,等待我们的,只有不断加油!!

  1. 2011年10月26日09:49

    我又来支持一下博主了 :grin:

  2. 2011年10月26日09:45

    顶一下 写的不错 ;-)

  3. 2011年10月26日09:45

    相互学习 才能提高 ;-)

  4. 2011年10月24日13:45

    JS确实很难搞~~~

  5. 2009年10月27日15:57

    也在学习中啊。
    一起努力。

    hzhjun 于 2009-10-27 23:12:27 回复

    你比俺强多了,以后多向你请教!!

  6. 2009年10月19日13:04

    我感觉比较难。一直用得不熟手!

    hzhjun 于 2009-10-19 23:38:05 回复

    我现在也是半生不熟,还没入门呢。。。

  7. 2009年10月14日14:05

    当学习基础和知识了,讲得不错,不死板。

    hzhjun 于 2009-10-14 22:21:17 回复

    多谢朋友捧场!!

  8. 2009年10月14日13:40

    肥肉不好吃,我喜欢吃五花肉,文章名叫:JS好吃不?

    hzhjun 于 2009-10-14 22:20:56 回复

    哈,这个很有吸引力。。。

  9. 2009年10月12日18:50

    来学习的。

    hzhjun 于 2009-10-13 9:50:26 回复

    相互学习。

  10. 2009年10月12日15:20

    学习学习。

    hzhjun 于 2009-10-13 9:52:17 回复

    俺也是刚刚看了个开始,还得继续呢。。。

    由 hzhjun 于 2009-10-13 9:52:34 最后编辑

  11. 2009年10月12日11:12

    这应该是JS的故事

    hzhjun 于 2009-10-12 11:41:22 回复

    嗯,看完第一章后,将这些串了下。

  12. 2009年10月11日13:51

    想学,不知道难不难

    hzhjun 于 2009-10-12 9:36:51 回复

    我也是从头开始,一起努力吧!

  13. 2009年10月11日10:00

    不错!学习下,也是好的!

    hzhjun 于 2009-10-12 9:37:24 回复

    相互学习!

  14. 2009年10月11日01:24

    学习一下子

    汇感之舟 于 2009-10-11 22:27:58 回复

    我现在就很想学,但感觉很难

    hzhjun 于 2009-10-12 9:36:15 回复

    其实没有你想的那么难,只有你足够相信自己。