JavaScript和Java有什么区别?


77

JavaScript和Java有什么区别?

Answers:


573

Java和Javascript相似,例如Car和Carpet相似。


11
不幸的是,我不能主张独创性。但是,我不记得我第一次听到它的地方。
Greg Hewgill

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

3
@Ian Quigley:啊,那一定是我看到的地方!谢谢。
Greg Hewgill 09年

11
我更喜欢关于火腿和仓鼠的版本。
库巴·苏德

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

408

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

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


2
如果我们可以进行绝对投票,我将对+1进行搞笑投票,否则,嗯。
唐·韦克菲尔德

19
过去几年来,我一直在谴责您发布Javascript。然后我删除第二段和L'dOL。但是,
等一下

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

12
可悲的是我只能投票一次。这正在我的Facebook个人资料中的某个地方出现
萨曼莎·布拉纳姆

3
@罗马,当然,正确的Java方式是使用复杂的继承和其他
出色的

188

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

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

以下是一些我认为是JavaScript的特长的功能:

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

8
迟到了2年,但是非常感谢您的周到解释。它比选定的答案更有用和有用,并且应该得到更多的选票IMO
Eric Hu

2
在这种情况下,我都支持。我们需要正确的答案,但是像我们这样的怪胎真是个傻瓜,我们真的更需要这种幽默
Michael Durrant

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

51

看一下Wikipedia链接

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


38

一切。

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

两种语言完全不同。


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

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

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

2
Sun通过“ Sun Java Desktop”再次尝试了这种命名技巧,该桌面本质上是Gnome的品牌版本,与Java无关。
Dan Dyer's

1
是的,它奏效了。@Greg Hewgill,这个世界可能会变得更美好,但是Javascript可能不会是今天。
丹·罗森斯塔克


23

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

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

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

另外,这直接来自Wikipedia Javascript文章

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


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

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

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

17

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

  • Java最初看起来不错,但后来变得很烦人。
  • 首先,JavaScript看起来很糟糕,毫无希望,然后逐渐变得真正喜欢它。

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



8

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


5

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

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


2

他们彼此无关。

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

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

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


2

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

两种语言完全不同!!!


1

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

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


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.