JavaScript和Java有什么区别?

Guy*_*Guy 77 javascript java

JavaScript和Java有什么区别?

Gre*_*ill 573

Java和Javascript类似,Car和Carpet相似.

  • 很好的答案,但是您仅为此获得了超过 690 的代表这一事实表明 StackOverflow 的代表系统存在很大缺陷。 (24认同)
  • 我不认为这是一个缺陷.他应该得到他的观点.这是一个简短的答案,他需要知道的全部内容. (13认同)
  • 不幸的是,我不能声称原创性.但是,我不记得我第一次听到它的地方. (11认同)
  • 我更喜欢关于火腿和仓鼠的版本. (11认同)
  • 他没有。每天最多 200 个。 (4认同)
  • @Ian Quigley:啊,那一定是我看到的地方!谢谢. (3认同)
  • 这是一个糟糕的答案.Javascript和Java都是编写代码的语言,但它们在不同的上下文中使用.汽车和地毯彼此没有任何关系.Javascript和Java很容易让初学者感到困惑 (3认同)

Sho*_*og9 408

一个本质上是一个玩具,设计用于编写小块代码,传统上由没有经验的程序员使用和滥用.

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

  • 在过去的几年里,当我到目前为止,我正打算骂你.然后我摆脱了第二段和L'dOL.但是,坚持下去,Java是我的主要收入来源...... :-) (19认同)
  • 令人遗憾的是,我只能投票一次.这是在我的Facebook个人资料的某个地方...... (12认同)
  • @Roman当然,正确的Java方法是使用复杂的继承和其他很酷的OOP功能编写至少20个不同的类来完成FizzBu​​zz :) (3认同)
  • 如果我们可以进行分类投票,我会投票+1搞笑,但除此之外,嗯. (2认同)
  • 贬低Javascript,然后注意到你正在谈论JAVA和upvoted(并且lol'ed很多). (2认同)

Chr*_*ung 189

以下是两种语言之间的一些差异:

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

以下是我认为JavaScript的特殊优势的一些功能:

  • JavaScript支持闭包; Java可以使用匿名类来模拟排序"闭包".(Java的未来版本可能支持真正的闭包.)
  • 所有JavaScript函数都是可变的; 如果明确标记,Java函数只是可变参数.
  • JavaScript原型可以在运行时重新定义,并对所有引用对象立即生效.无法以影响任何现有对象实例的方式重新定义Java类.
  • JavaScript允许对象中的方法独立于其原型重新定义(想想Ruby中的本征类,但是类固醇); Java对象中的方法与其类绑定,不能在运行时重新定义.

  • 迟了2年,但非常感谢你这个深思熟虑的解释.它比选定的答案更有用,更有用,并且值得IMO投票更多 (8认同)
  • 在这种情况下,我同时投票.我们需要正确的答案,但神圣的shmoly,像我们这样的极客我们真的需要更多的幽默 (2认同)

too*_*kit 52

看看维基百科的链接

尽管有名称,JavaScript本质上与Java编程语言无关,尽管两者都具有通用的C语法,并且JavaScript复制了许多Java名称和命名约定.该语言最初被命名为"LiveScript",但在Netscape和Sun之间的联合营销协议中重新命名,以换取Netscape将Sun的Java运行时与他们当时占主导地位的浏览器捆绑在一起.JavaScript中的关键设计原则继承自Self和Scheme编程语言.


dda*_*daa 38

一切.

Netscape以这种方式命名JavaScript,让那些粗心大意的人认为它与Java有关,这是当时的流行语,并且它成功了.

这两种语言完全不同.

  • Javascript最初被称为Livescript,如果它们没有重命名,今天世界可能会变得更好! (8认同)
  • 我怀疑这是否会引起混淆 - 对公司有什么好处呢?我怀疑_intent_是为了取得Java的成功,尽管_effect_就是你所说的. (2认同)
  • Sun再次使用"Sun Java Desktop"尝试了这个命名技巧,它本质上是Gnome的品牌版本,与Java无关. (2认同)

Bil*_*ard 23

JavaScript是一种面向对象的脚本语言,允许您创建动态HTML页面,允许您处理输入数据和维护数据,通常在浏览器中.

Java是一种编程语言,核心库和虚拟机平台,允许您创建几乎在每个平台上运行的编译程序,而无需以原始格式或重新编译方式分发源代码.

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

此外,这直接来自维基百科的Javascript文章:

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

  • Javascript不仅适用于HTML页面,Java6现在包含它,BIRT将其用于报表脚本 - 我确信除了这两个之外还有其他非HTML用法. (2认同)
  • 脚本只是一种特殊的编程方式......相反,你应该说Java可能是一种编译的编程语言,javascript是一种脚本或解释型编程语言. (2认同)

Ste*_*aug 17

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

  • Java起初看起来很不错,后来它变得很烦人.
  • JavaScript起初看起来很糟糕且绝望,然后你逐渐开始喜欢它.

(但这可能与我对OO编程的函数式编程的偏好有很大关系......;)


Kir*_*ser 14

一切.他们是无关的语言.

  • 你误解了 - 我现在打你了.把我的可乐给我. (2认同)

Don*_*eld 8

它们是具有不相关谱系的独立语言.Brendan Eich最初在Netscape创建了Javascript.它最初被称为摩卡.选择Javascript作为名称是一个点头,如果你愿意的话,那就是当时的Java程序设计语言,由Patrick Naughton,James Gosling等人在Sun开发.人.


Dar*_*man 5

就像每个人的说法一样,它们完全不同.

但是,如果您需要Java应用程序的脚本语言,Javascript实际上是一个非常好的选择.有一些方法可以让Javascript在JVM中运行,并且一旦你这样做就可以非常无缝地访问和操作Java类.