JavaScript历史杂谈

本文讲述了JavaScript从1995年由Brendan Eich设计至今的发展历程,包括其诞生背景、设计初衷、名称演变及标准化过程。同时介绍了JavaScript与Java、ECMAScript之间的关系及其在浏览器中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JavaScript历史杂谈

   1990年底,欧洲核能研究组织(CERN)科学家Tim Berner-Lee在互联网的基础上发明了万维网(World Wide Web),从此可以浏览网页文件。
  1992年底,美国国家超级电脑应用中心(NCSA)开发了一个独立的浏览器Mosaic。
  1994年10月,NCSA的一个程序员Marc Andreessen联合风险投资家Jim Clark成立了Mosaic公司,不久后改名为Netscape。
  1994年12月,网景公司(Netscape)发布了navigator浏览器1.0版,轰动一时。但是它只能用来浏览网页,并不能实现交互效果。因此急需一种脚本语言实现交互效果。
  1995年,sun公司将Oak语言改名为Java,正式向市场推出。sun公司大肆宣传,Java风头一时无二。网景公司动了心,决定与sun公司结成联盟。
  1995年4月,网景公司录用了Brendan Eich。Brendan Eich擅长的是Scheme语言,主要方向是函数式编程。
  一个月后,也就是1995年5月,公司做出决定,未来的网页脚本语言必须“看上去与Java足够相似”,但是比Java简单。而Brendan Eich被指定为这种语言的设计师。他用了10天设计出了JavaScript。借鉴了C语言的基本语法,Java的数据类型和内存管理,借鉴Scheme语言,将函数提升到”第一等公民”(first class)的地位,借鉴Self语言,使用基于原型(prototype)的继承机制。所以JavaScript是一个不同语言风格的大杂烩,主要还是Scheme的函数式编程(自己想做的)和Java的面向对象编程(网景公司指定)。
  这个脚本语言最开始被命名为Mocha,所谓抹茶配咖啡(Java)。1995年9月改成了LiveScript,12月与sun公司达成协议,再次更名为JavaScript。Netscape公司可以借助Java的声势发展,而Sun公司则将自己的影响里扩展到了浏览器。1995年12月4号,Netscape公司与Sun公司联合发布了JavaScript语言。
  1996年3月,Navigator浏览器正式内置了JavaScript脚本语言。
  1996年8月,微软模仿JavaScript开发了JScript,内置于IE3.0。
  为了抵抗微软,1996年11月,Netscape将JavaScript提交给国际标准化组织(Europe Computer Manufaturers Association),希望JavaScript能成为国际标准。
  1997年7月,ECMA发布了ECMA-262第一版,规定了浏览器脚本语言的标准,并将这种语言称为ECMAScript(由于Java是Sun公司的商标,只有Netscape公司可以合法地使用JavaScript这个名字,并且JavaScript已经被Netscape公司注册,所以以ECMAScript命名)。
  微软的IE5.5实现了用js发请求。
  2004年Gmail实现了第一个网页程序,自此js才可以正式算作一门编程语言。后来用着发现了js的许多不足之处,比如全都是全局变量容易混淆不利于模块化编程,缺少标准库(内置代码少),于是升级成了ES3。ES3是流行范围最广的,ES4由于各种原因并没有发布,ES5在ES3的基础上新增了一点东西,IE8部分支持。ES6新增了很多东西,IE8不支持。ES兼容以前版本。

  写完发现自己只是简单枯燥的记了一下历史,其实里边很多东西挺有趣的。。
  比如按照这个时间线的话就很好解释为什么JavaScript没有采用utf-8编码了,因为那个时候utf-8并没有出来。正因为如此js只支持16位也就是两个字节的Unicode字符,不能自动识别两个字节以上的也就是编号大于0xFFFF的。有些特殊的字符编号大于0xFFFF因此使用.length得到的结果为2,但是它其实只是一个字符,千万不要误以为是两个。
  再比如做浏览器兼容的时候如果要兼容IE8那就尽量不要用ES6语法。或许以后碰到什么令人费解的问题还能在这时间线上找到答案吧!虽然写的挺无聊的。。

参考资料:《JavaScript标准参考教程》阮一峰

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值