您的位置 首页 java

JavaScript和Java之间的那些事,不要再分不清了

先上张图

不知这张图解释的够不够清楚。下面我郑重申明:

Java 和 JavaScript 是两门不同的 编程语言 Java 和 JavaScript 是两门不同的编程语言。 Java 和 JavaScript 是两门不同的编程语言。

一般认为,当时 Netscape 之所以将 LiveScript 命名为 JavaScript,是因为 Java 是当时最流行的编程语言,带有 “Java” 的名字有助于这门新生语言的传播。

它们的相同之处包括:

  • 它们的语法和 C 语言都很相似;

  • 它们都是面向对象的(虽然实现的方式略有不同);

  • JavaScript 在设计时参照了 Java 的命名规则;

它们的不同之处在于:

1 出身不同:

Javascript 与 Java 是由不同的公司开发的不同产品。Javascript 是 Netscape 公司的 脚本语言 ,而 Java 是 SUN Microsystems 公司推出的新一代 面向对象的程序设计 语言。

2 语言类型不同:

JavaScript 是动态类型语言,而 Java 是静态类型语言

3 所采取的变量不同

JavaScript 中的变量声明采用弱类型,即变量在使用前不需作声明,而是解释器在运行时检查其数据类型。Java 采用强类型变量检查,即所有变量在编译之前必须作声明。

4 代码格式不同

1>Javascript 采用动态联编,即 Javascript 的对象引用在运行时进行检查。Java 采用静态联编,即 Java 的对象引用必须在编译时的进行,以使编译器能够实现强类型检查。

2>Javascript 不直接对文本和图形进行操作,它在 Web 页面中与 HTML 元素组合一起发挥作用,但它可以控制浏览器,让浏览器直接对文本和图形进行处理。而 Java 则可以直接对文本和图形进行操作。

JavaScript 除了长得和 Java 比较像之外,语言风格相去甚远。JavaScript 在设计时所参考的对象不包括 Java,而包括了像 Self 和 Scheme 这样的语言。

下面分享一下js诞生的有趣的小故事。

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(布兰登·艾奇)(虽然Bremdan Eich(布兰登·艾奇)是JavaScript的祖师爷,但是他的介入或许也是JavaScript悲剧的开始)。我们还是接着说网景公司(Netscape)吧,1995年5月,网景公司(Netscape)做出了决策,未来的网页脚本语言必须看上去和Java足够相似,但是比Java简单,使得非专业的网页作者能很快的上手。

Bremdan Eich(布兰登·艾奇)被任命为这个简化版的Java的设计师。但是Bremdan Eich(布兰登·艾奇)对Java一点兴趣都没有,为了应付公司的安排的任务,他只用10天时间就设计出了JavaScript。悲剧就这么诞生了。

Brendan Eich的主要方向和兴趣是函数式编程,网景公司招聘他的目的,是研究将Scheme语言作为网页脚本语言的可能性。Brendan Eich本人也是这样想的,以为进入新公司后,会主要与Scheme语言打交道。(没想到美国公司也有这样的恶习,我以前有家公司非常的BT,特别是对刚毕业或者工作时间不长的程序员,你想做Java我偏偏不给你做,让你做C#,你想做C#,别天真,你去倒腾Java,很多程序员就是这么被致残的)。

10天诞生一种语言,不管怎么说我还是把Brendan Eich当神看。但是神创造世界也不能太一蹴而就了,我们这些凡夫俗子很多时候做个小功能模块如果领导就给你10天时间,也会叫苦连天的,10天诞生一种语言这不是神还是啥啊。由于JavaScript设计的时间实在太短,导致很多细节考虑不周,因此JavaScript写出的程序混乱不堪,成了许多程序员的梦魇,差点被人抛弃,直到ajax的出世,才让人们终于找到理由忍受他的畸形。 

总的来说啊,Brendan Eich设计思路是这样的:

  1. 借鉴 C语言 的基本语法;

  2. 借鉴Java语言的数据类型和内存管理;

  3. 借鉴Scheme语言,将函数提升到”第一等公民”(first class)的地位;

  4. 借鉴Self语言,使用基于原型( prototype )的继承机制。

如果学过这两种语言的童鞋可能会跟我有同样的感受,JavaScript里面有Java的思想,js还是借鉴了java的。

经过小编这样解释,相信还没完全明白Java和JavaScript的童鞋也能明白的差不多吧。

文章来源:智云一二三科技

文章标题:JavaScript和Java之间的那些事,不要再分不清了

文章地址:https://www.zhihuclub.com/200841.shtml

关于作者: 智云科技

热门文章

网站地图