JavaScript和Java有什么区别?

#1 楼

Java和Javascript相似,就像Car和Carpet相似。

评论


不幸的是,我不能要求独创性。但是,我不记得我第一次听到它的地方。

– Greg Hewgill
08年11月12日17:56

我不认为这是一个缺陷。他应得的观点。这是一个简短的答案,所有他需要知道的。

– Johannes Schaub-小人
08年12月30日在14:32

@Ian Quigley:啊,那一定是我看到的地方!谢谢。

– Greg Hewgill
09年12月14日在18:34

我更喜欢关于火腿和仓鼠的版本。

–库巴·苏德
2010年11月8日16:00

这是一个不好的答案。 Javascript和Java都是用于编写代码的语言,但是它们在不同的上下文中使用。 Car和Carpet一点都不一样。 Java语言和Java对于初学者来说很容易混淆

– Pete
2012年2月14日9:00

#2 楼

一个基本上是玩具,旨在编写小段代码,传统上是由经验不足的程序员使用和滥用。

另一个是用于Web浏览器的脚本语言。

评论


如果我们可以进行绝对投票,我将对+1进行搞笑投票,否则,嗯。

–唐·韦克菲尔德
08-10-28在22:16

过去几年来,我一直在谴责您发布Javascript。然后我删除第二段和L'dOL。但是,等一下,Java是我的主要收入来源... :-)

– paxdiablo
08-10-28在22:55

因发布Javascript而被低估,然后注意到您正在谈论JAVA并被高估(并且大声笑)。

– Pim Jager
08年12月7日在12:05

可悲的是我只能投票一次。这正在我的Facebook个人资料中某处...

–Samantha Branham
09年2月10日在5:37

@Roman当然,正确的Java方式是使用复杂的继承和其他出色的OOP功能编写至少20个不同的类,以完成FizzBu​​zz :)

–埃尔兹
2010年8月20日在4:17

#3 楼

这是两种语言之间的一些区别:


Java是一种静态类型的语言。 JavaScript是动态的。
Java是基于类的; Java是基于类的。 JavaScript是基于原型的。
Java构造函数是特殊的函数,只能在对象创建时调用。 JavaScript“构造函数”只是标准函数。
Java要求所有非阻塞语句以分号结尾; JavaScript在某些行的末尾插入分号。
Java使用基于块的作用域; JavaScript使用基于函数的作用域。
Java具有用于非静态方法的隐式this范围和隐式类范围。 JavaScript具有隐式的全局范围。

我认为其中一些功能是JavaScript的特殊优势:


JavaScript支持闭包; Java可以使用匿名类来模拟排序的“关闭”。 (将来的Java版本可能会支持真正的闭包。)
所有JavaScript函数都是可变的; Java函数只有在显式标记的情况下才是可变参数。
JavaScript原型可以在运行时重新定义,并且对所有引用对象都具有立即作用。 Java类不能以影响任何现有对象实例的方式进行重新定义。
JavaScript允许对象中的方法独立于其原型进行重新定义(请考虑Ruby中的本征类,但在类固醇上)。 Java对象中的方法绑定到其类,并且无法在运行时重新定义。


评论


迟到了2年,但是非常感谢您的周到解释。它比所选答案更有用和有用,并且值得获得更多选票。IMO

–胡锦涛
2011年3月31日在21:29

在这种情况下,我都支持。我们需要正确的答案,但是像我们这样的怪胎,我们真的需要更多这种幽默感

–迈克尔·杜兰特(Michael Durrant)
2011-11-15 12:58

您可能在这里也可能使用强类型和松类型,而不是静态类型和动态类型。

–圣
2011-12-14 14:56

#4 楼

看一下Wikipedia链接


尽管名称相同,但是JavaScript基本上与Java编程语言无关,尽管它们都有通用的C语法,并且JavaScript复制了许多Java名称和命名。约定。该语言最初命名为“ LiveScript”,但在Netscape和Sun之间的共同营销协议中被重命名,以换取Netscape将Sun的Java运行时与当时主流的浏览器捆绑在一起。 JavaScript中的关键设计原理继承自Self和Scheme编程语言。


#5 楼

一切。

Netscape以此方式命名JavaScript,以使粗心的人认为它与当今的流行语Java有关,并且成功了。

两种语言完全不同。

评论


Javascript最初被称为Livescript,如果没有重命名,今天的世界可能会变得更好。

– Greg Hewgill
08-10-28在22:13

我怀疑这会引起混乱-这样做对公司有什么好处?我怀疑这样做的目的是依靠Java的成功,尽管效果就是您所说的。

– paxdiablo
08-10-28在22:58

通过调用与相似名称无关的东西来“实现Java的成功”?在我看来,这听起来很像“造成营销目的的混乱”。

–ddaa
08-10-28在23:04

Sun再次使用“ Sun Java Desktop”尝试了这种命名技巧,它实际上是Gnome的品牌版本,与Java无关。

–丹·代尔
08-10-29在0:07

是的,它奏效了。 @Greg Hewgill,这个世界可能会变得更美好,但是Javascript可能不会像今天这样。

–丹·罗森斯塔克(Dan Rosenstark)
09年1月12日下午5:32

#6 楼

Java对JavaScript就像火腿对仓鼠一样

评论


您认为火腿从哪里来? ;)

–比尔蜥蜴
2012年3月1日15:37

它来自一只大仓鼠。它太大了,您可以将它与猪混淆。 ;)

–kiamlaluno
2012年3月20日19:35



#7 楼

JavaScript是一种面向对象的脚本语言,可让您创建动态HTML页面,从而使您通常在浏览器中即可处理输入数据并维护数据。

Java是一种编程语言,是一组核心库和虚拟机平台,使您可以创建可在几乎所有平台上运行的编译程序,而无需以原始格式分发或重新编译源代码。

两者的名称相似,但实际上它们是两个完全不同的编程语言/模型/平台,并用于解决完全不同的问题集。

这也直接来自Wikipedia Javascript文章:


常见的误解是JavaScript与Java相似或紧密相关。事实并非如此。两者都有类似C的语法,都是面向对象的,通常是沙盒化的,并且在客户端Web应用程序中得到了广泛使用,但是相似之处到此为止。 Java具有静态类型; JavaScript的类型是动态的(意味着变量可以容纳任何类型的对象,并且不受限制)。 Java是从编译后的字节码加载的; JavaScript被加载为人类可读的代码。 C是他们最后的祖先语言。


评论


Javascript不仅仅用于HTML页面,Java6现在包括它,BIRT将其用于报表脚本编写-我确信除了这两个之外,还有其他非HTML用途。

– paxdiablo
08-10-28在22:56

你是对的。随着Rhino的开发以及您提到的其他一些开发,Javascript已经远远超出了浏览器沙箱。

–比尔蜥蜴
08年12月30日在14:24

脚本仅仅是一种特定的编程方式……相反,您应该说Java是一种编译的编程语言,而javascript是一种脚本或解释性编程语言。

–Blacktiger
10年8月23日在18:38

#8 楼

除了完全不同的语言之外,根据我的经验:



Java最初看起来很不错,后来变得很烦人。
JavaScript最初看起来很糟糕,没有希望,然后逐渐真的开始喜欢它。

(但这可能与我更喜欢函数式编程而不是OO编程...;)

#9 楼

一切。它们是不相关的语言。

评论


在手臂上打孔。根据Wikipedia的说法,在您与我混在一起之后,我必须再次这样做。 en.wikipedia.org/wiki/Jinx

–ddaa
08-10-28在22:22

您误读了-我现在就打您。把我的可乐拿给我。

–Kirk Strauser
08-10-29在0:45

#10 楼

它们是具有无关血统的独立语言。 Brendan Eich最初在Netscape中创建了Javascript。它最初被称为摩卡咖啡。如果愿意的话,选择Javascript作为名称是对当时由Patrick Naughton,James Gosling等在Sun开发的新兴Java编程语言的致敬。等。

#11 楼

就像大家都说的那样,它们完全不同。

但是,如果您需要Java应用程序的脚本语言,那么Javascript实际上是一个不错的选择。有多种方法可以使Javascript在JVM中运行,并且一旦完成,您就可以无缝地访问和操作Java类。

#12 楼

它们彼此无关。

Java是静态类型的,可编译的,可在其自己的VM上运行的。

Javascript是动态类型的,可解释的并在浏览器中运行。它还具有一流的功能和匿名功能,而Java没有。它可以直接访问网页元素,这对进行客户端处理很有用。

它们的语法也有些相似,但仅此而已。

#13 楼

不要与名称混淆。
Java是在Sun Microsystems(现为Oracle)创建的。
但是,JavaScript是在Web早期由Netscape(现为Mozilla)创建的。 “ Java脚本”是Sun Microsystems许可的商标,用于描述Netscape语言的实现。 Netscape向ECMA(欧洲计算机制造商协会)提交了
标准化语言
,由于商标问题,该语言的标准化版本
贴上了尴尬的名称“ ECMAScript”。出于相同的商标原因,
该语言的Microsoft版本正式称为“ JScript”。实际上,几乎每个人都将JavaScript语言称为。真实名称是“ ECMAScript”。

两种语言完全不同!

#14 楼

实际上,世界上每台PC都至少装有一个JavaScript解释器。

大多数(但不是“几乎所有”)PC都装有Java VM。

#15 楼

Mozilla小组(他们制作Firefox)对Java脚本的重新介绍应该对此进行解释。