JavaScript诞生于浏览器的鼻祖网景公司(Netscape),大约是1994年左右,网景公司(Netscape)发布了Navigator浏览器0.9版,网景公司(Netscape)的用户数因此而出现了井喷的态势,但是Navigator0.9不具备和访问者互动的能力,在那个上网速度比蜗牛还慢的时代,网景公司(Netscape)急需一种脚本语言,使得浏览器和网页进行交互,从而提升用户的体验。
针对这个问题,网景公司(Netscape)有两种选择,一是采用现有的脚本语言,二是自己发明一个新的脚本语言。当时网景公司(Netscape)的高层对这个问题争论不休。在这些喋喋不休的争论里,时间走到了1995年,这一年发生了一件创造历史的大事件,编程语言Java横空出世,Java凭借“一次编写,到处运行的”强大宣传,大有未来主宰的霸气,这些让网景公司(Netscape)高层们一下子被Java所俘获,所以网景公司(Netscape)和sun公司结盟,网景公司(Netscape)不仅允许Java程序以applet的形式嵌入到浏览器,直接在浏览器里面运行,甚至还打算把Java作为脚本嵌入到网页,只是最后发现网页会变的过于复杂而放弃,但是JavaScript的Java印记永远都挥之不去。
事情的转折发生在1995年4月,网景公司(Netscape)录用了Bremdan Eich(布兰登·艾奇),1995年5月,网景公司(Netscape)做出了决策,未来的网页脚本语言必须看上去和Java足够相似,但是比Java简单,使得非专业的网页作者能很快的上手。
Bremdan Eich(布兰登·艾奇)被任命为这个简化版的Java的设计师。但是Bremdan Eich(布兰登·艾奇)对Java一点兴趣都没有,为了应付公司的安排的任务,1995年5月,Brendan Eich只用了10天,就设计完成了这种语言的第一版。它是一个大杂烩,语法有多个来源:
基本语法:借鉴C语言和Java语言。
数据结构:借鉴Java语言,包括将值分成原始值和对象两大类。
函数的用法:借鉴Scheme语言和Awk语言,将函数当作第一等公民,并引入闭包。
原型继承模型:借鉴Self语言(Smalltalk的一种变种)。
正则表达式:借鉴Perl语言。
字符串和数组处理:借鉴Python语言。
为了保持简单,JavaScript缺少一些关键的功能,比如块级作用域、模块、子类型(subtyping)等等,但是可以利用现有功能找出解决办法。这种功能的不足,直接导致了后来JavaScript的一个显著特点:对于其他语言,你需要学习语言的各种功能,而对于JavaScript,你常常需要学习各种解决问题的模式。而且由于来源多样,从一开始就注定,JavaScript的编程风格是函数式编程和面向对象编程的一种混合体。
网景公司(Netscape)的这种浏览器脚本语言,最初名字叫做Mocha,1995年9月改为LiveScript。12月,Netscape公司与Sun公司(Java语言的发明者和所有者)达成协议,后者允许将这种语言叫做JavaScript。其实两种语言并没有什么关联,只是为了商业宣传而命名为JavaScript。这样一来,Netscape公司可以借助Java语言的声势,而Sun公司则将自己的影响力扩展到了浏览器。
1995年12月4日,Netscape公司与Sun公司联合发布了JavaScript语言。
1996年3月,Navigator 2.0浏览器正式内置了JavaScript脚本语言。