js怎么诞生的

admin 103 0
JavaScript诞生于1995年,由网景公司程序员布兰登·艾克为解决网页交互问题而开发,最初命名为LiveScript,为借助Java热度改名为JavaScript(与Java无关),早期仅能在浏览器中运行,用于实现表单验证、动态效果等客户端功能,填补了静态网页的交互空白,随着技术发展,2009年Node.js问世,使其扩展至服务器端,成为全栈语言,JavaScript已成为Web开发的核心语言之一,支撑着全球绝大多数动态网页和应用的运行。

JavaScript的诞生:从浏览器到全球的语言

1995年的互联网,还处在“静态网页”的时代,那时的网页就像一本固定的电子书,打开后内容一成不变,用户只能被动阅读,无法与之互动,想要在网页上实现简单的表单验证、动态更新内容,都需要复杂的后端处理,用户体验极差,而改变这一切的,是一个名为JavaScript的语言——它的诞生,不仅让网页“活”了起来,更意外地成为了全球使用人数最多的编程语言之一。

困境:浏览器里的“交互空白”

20世纪90年代初,互联网开始兴起,网景公司(Netscape)推出的Netscape Navigator浏览器迅速成为市场主导,当时,网页开发主要依赖HTML(超文本标记语言)和CSS(层叠样式表),HTML负责搭建页面结构,CSS负责美化样式,但两者都无法实现动态交互,用户在注册表单中输错邮箱格式,网页无法实时提示;点击按钮后,页面需要刷新才能显示新内容。

网景的工程师们意识到,浏览器急需一种“脚本语言”,让网页能够在用户端直接运行简单逻辑,减少对服务器的依赖,竞争对手微软也在开发自己的浏览器(后来的Internet Explorer),并计划在浏览器中嵌入一种名为“VBScript”的脚本语言(基于Visual Basic),网景感到了压力:如果不能快速推出自己的脚本语言,可能会在浏览器大战中失去优势。

奇迹:10天诞生的“LiveScript”

1995年,网景公司急需一位工程师来开发这种脚本语言,当时刚加入网景仅一个月的布兰登·艾克(Brendan Eich)接下了这个任务,艾克是一名对函数式编程和原型链有深入研究的计算机科学家,但他面临一个挑战:网景希望这种语言既能“像Java一样强大”,又要“像脚本语言一样简单”——毕竟Java当时正因“一次编写,到处运行”的理念备受关注,网景也想借Java的热度推广自己的脚本语言。

艾克需要在极短的时间内完成设计,他借鉴了多种语言的特性:从Scheme(Lisp方言)中借鉴了函数式编程和动态类型,从Self语言中借鉴了原型链(基于对象而非类的继承机制),从Java中借鉴了C-style的语法(花括号、分号等),为了快速实现,他决定让语言“解释执行”——不需要编译成机器码,直接在浏览器中运行,这大大降低了开发门槛。

1995年5月,艾克仅用10天就写出了这种语言的第一个版本,最初,它被命名为“LiveScript”,意为“让网页‘活’起来的语言”,就在此时,网景与太阳微系统(Sun Microsystems)达成合作,Java正成为技术界的宠儿,为了借助Java的声势,网景决定将LiveScript更名为“JavaScript”,尽管它与Java在语法和设计理念上几乎没有关联(这一“蹭热度”的命名后来也带来了不少误解,但确实帮助JavaScript早期获得了关注)。

发布与争议:“抄袭”与“创新”的质疑

1995年9月,Netscape Navigator 2.0正式发布,JavaScript首次被集成到浏览器中,开发者们可以在HTML中通过<script>标签嵌入JavaScript代码,实现简单的交互功能,比如表单验证、动态弹窗、页面元素的实时修改等。

JavaScript的诞生并非一帆风顺,微软在1996年推出的Internet Explorer 3.0中模仿JavaScript,推出了自己的脚本语言JScript(后来也更名为JavaScript,但实现细节不同),导致不同浏览器间的JavaScript代码不兼容,开发者需要为不同浏览器编写多套代码,苦不堪言,不少程序员批评JavaScript“抄袭”Java和其他语言,缺乏原创性,但艾克回应称,JavaScript的设计目标是“解决浏览器端交互问题”,而非成为“小号Java”,它的原型链、动态类型等特性,正是为了适应网页开发的轻量级需求而创新。

标准化:ECMAScript的诞生

随着JavaScript的普及,浏览器兼容性问题越来越严重,为了统一规范,网景在1996年决定将JavaScript提交给欧洲计算机制造商协会(ECMA)进行标准化,1997年,ECMA发布了ECMAScript标准(简称ES),这是JavaScript的语言规范,规定了语法、类型、对象等核心特性,从此,JavaScript有了“官方身份证”——无论哪家浏览器,只要遵循ECMAScript标准,就能保证基本的兼容性。

ECMAScript的发布,让JavaScript从“网景的私有语言”变成了“开放标准语言”,后续的ES3(1999)、ES5(2009)、ES6(2015)等版本不断迭代,增加了箭头函数、Promise、模块化等新特性,让JavaScript的功能越来越强大,也逐渐从“浏览器脚本语言”向“通用编程语言”演进。

超越浏览器:JavaScript的“全栈时代”

JavaScript最初的设计局限在浏览器端,但2009年,一个名为Node.js的项目彻底改变了它的命运,Node.js将Chrome的V8 JavaScript引擎(负责