1. 何为JavaScript
首先要明确的是,JavaScript(以下简称JS)是运行在浏览器中的脚本语言,即解释语言。
JS的作用是用于创制动态更新的内容、操控多媒体内容、使图片动起来,以及其他酷炫的特效等等[1]。JS能做的东西只有你想不到的,没有你见不到的。
可以这样说,JS是前端的核心。
2. JS发展小史
原本的浏览器只能阅读网页内容,只起一个内容呈现的作用,而在用户交互上显得无力。
这一局面由网景公司(Netscape)打破。网景于上世纪90年代开发出了成熟的浏览器Navigator(即Firefox的前身,这篇博客就是在Firefox上完成的)。该浏览器就是上面所说的只有内容呈现作用的浏览器。“网景公司急需一种网页脚本语言,使得浏览器可以与网页互动[2]”。
于是网景招来了一名程序员--Brendan Eich,用于解决上述问题。
起初,网景公司设想过这样几个解决方案:
- 将现有的脚本语言嵌入网页中,例如Python等。(作为一个前Python开发者,我其实挺希望这种方案实现的)
- 新创造一门语言
在Eich到来之后,网景公司便做出了决策,那就是采用第二种。
与此同时,Java语言开始流行起来,现在Java依旧很流行。公司内部为了蹭Java的热度,让Eich作为一种“简化版Java”的设计者。
于是,Eich仅用了10天便将该门语言设计出来了,注意,不是10天实现。起初定名是LiveScript,但网景为了蹭Java的热度(还是蹭热度),将该语言改名为JavaScript。
在JavaScript诞生不久后,竞争对手微软便发布了功能类似的浏览器脚本语言--JScript。真不知道该称彼时的微软是“美国腾讯”,还是称腾讯为“中国微软”。虽然JScript没有获得成功,但微软却在后面的浏览器大战中赢麻了,成功打败了网景公司,造就了繁盛一时的IE时代。
虽然JS的设计缺陷和bug不少,虽然作为一个前Python开发者转到JS时各种难受,但JS还是前端不可替代的一部分。至于JS有什么缺陷,可以阅读阮一峰老师所写的这篇文章。
作为前端,需要掌握JS的三大核心是:
- ECMAScript
- DOM (Document Object Model,文档对象类型)
- BOM (Browser Object Model,浏览器对象类型)
后两个部分也是需要着重学的两个部分。
至于Node.js,这是一种JS的服务器实现,也可以认为是C++实现的JS解释器。在当前的大前端环境下,Node.js也成为前端必学的技能了。
3. JavaScript和Java有什么关系?
没有任何关系!