JavaScript 和 Java 有啥区别?
Posted
技术标签:
【中文标题】JavaScript 和 Java 有啥区别?【英文标题】:What's the difference between JavaScript and Java?JavaScript 和 Java 有什么区别? 【发布时间】:2010-09-19 16:37:04 【问题描述】:javascript 和 Java 有什么区别?
【问题讨论】:
【参考方案1】:Java is to JavaScript as ham is to hamster
【讨论】:
你认为火腿是从哪里来的? ;) 来自一只大仓鼠;它太大了,你可以把它和猪混为一谈。;)
【参考方案2】:
不要与名字混淆.. Java 是在 Sun Microsystems(现为 Oracle)创建的。 但是,JavaScript 是在 Web 的早期由 Netscape(现为 Mozilla)创建的,从技术上讲,“Java-Script”是 Sun Microsystems 许可的商标,用于描述 Netscape 对该语言的实现。网景提交了 ECMA(欧洲计算机制造商协会)标准化语言 由于商标问题,语言的标准化版本 被尴尬的名字“ECMAScript”困住了。出于同样的商标原因, 微软的语言版本正式称为“JScript”。在实践中,只是 大约每个人都将语言称为 JavaScript。真正的名字是“ECMAScript”。
两者是完全不同的语言!!!
【讨论】:
【参考方案3】:Mozilla 团队(他们制作 Firefox)的A Re-Introduction to Javascript 应该解释一下。
【讨论】:
【参考方案4】:世界上几乎每台 PC 上都安装了至少一个 JavaScript 解释器。
大多数(但不是“几乎所有”)PC 都安装了 Java VM。
【讨论】:
【参考方案5】:一切。
Netscape 以这种方式命名 JavaScript,以使粗心的人误以为它与 Java(当时的流行语)有关,并且它成功了。
这两种语言完全不同。
【讨论】:
Javascript 最初被称为 Livescript,如果没有重新命名,今天的世界可能会变得更美好! 我怀疑这会引起混乱——这对公司有什么好处?我怀疑 意图 是利用 Java 的成功,尽管 效果 就是你所说的。 通过调用与类似名称无关的东西来“驾驭java的成功”?对我来说,这听起来很像“为营销目的造成混乱”。 Sun 用“Sun Java Desktop”再次尝试了这个命名技巧,它本质上是 Gnome 的品牌版本,与 Java 无关。 是的,它奏效了。 @Greg Hewgill,世界可能会变得更美好,但 Javascript 可能不会是今天的样子。【参考方案6】:以下是两种语言之间的一些区别:
Java 是一种静态类型语言; JavaScript 是动态的。 Java 是基于类的; JavaScript 是基于原型的。 Java 构造函数是只能在对象创建时调用的特殊函数; JavaScript“构造函数”只是标准函数。 Java 要求所有非块语句以分号结尾; JavaScript 在某些行的末尾插入分号。 Java 使用基于块的范围; JavaScript 使用基于函数的范围。 Java 具有用于非静态方法的隐式this
范围和隐式类范围; JavaScript 具有隐式全局范围。
以下是一些我认为是 JavaScript 的特殊优势的功能:
JavaScript 支持闭包; Java 可以使用匿名类模拟某种“闭包”。 (Java 的未来版本可能会支持真正的闭包。) 所有 JavaScript 函数都是可变参数; Java 函数只有在显式标记时才是可变参数。 JavaScript 原型可以在运行时重新定义,并对所有引用对象立即生效。不能以影响任何现有对象实例的方式重新定义 Java 类。 JavaScript 允许独立于其原型重新定义对象中的方法(想想 Ruby 中的 eigenclasses,但在类固醇上); Java 对象中的方法与其类绑定,并且不能在运行时重新定义。【讨论】:
晚了 2 年,但非常感谢您的周到解释。它比选定的答案更有用,信息更丰富,值得 IMO 更多投票 在这种情况下我都赞成。我们需要正确的答案,但天哪,像我们这样的极客,我们真的需要更多这种幽默 您也可以在这里使用强类型和松散类型,而不是静态类型和动态类型。【参考方案7】:JavaScript 是一种面向对象的脚本语言,它允许您创建动态 html 页面,允许您处理输入数据和维护数据,通常在浏览器中。
Java 是一种编程语言、核心库集和虚拟机平台,可让您创建可在几乎所有平台上运行的已编译程序,而无需分发原始形式的源代码或重新编译。
虽然两者名称相似,但它们实际上是两种完全不同的编程语言/模型/平台,用于解决完全不同的问题。
另外,这直接来自***Javascript article:
一个常见的误解是 JavaScript 与 Java 相似或密切相关。事实并非如此。两者都具有类似 C 的语法,面向对象,通常是沙盒并广泛用于客户端 Web 应用程序,但相似之处仅此而已。 Java有静态类型; JavaScript 的类型是动态的(意味着一个变量可以保存任何类型的对象并且不能被限制)。 Java 是从编译后的字节码中加载的; JavaScript 被加载为人类可读的代码。 C 是他们最后的共同祖先语言。
【讨论】:
Javascript 不只是用于 HTML 页面,Java6 现在包含它,BIRT 将它用于报告脚本 - 我确信除了这两个之外还有其他非 HTML 用途。 你是对的。随着 Rhino 的发展,以及您提到的其他一些发展,Javascript 已经远远超出了浏览器沙箱。 脚本只是一种特殊的编程...相反,您应该说 Java 是一种编译型编程语言,而 javascript 是一种脚本或解释型编程语言。【参考方案8】:根据我的经验,除了是完全不同的语言之外:
Java 起初看起来不错,但后来变得很烦人。 JavaScript 一开始看起来很糟糕而且毫无希望,然后逐渐你就真的开始喜欢它了。(但这可能与我更喜欢函数式编程而不是 OO 编程有关......;)
【讨论】:
【参考方案9】:正如大家所说,它们几乎完全不同。
但是,如果您的Java 应用程序需要脚本 语言,Javascript 实际上是一个非常好的选择。有一些方法可以让 Javascript 在 JVM 中运行,并且一旦你这样做了,你就可以非常无缝地访问和操作 Java 类。
【讨论】:
【参考方案10】:他们没有任何关系。
Java 是静态类型的,可在其自己的 VM 上编译和运行。
Javascript 是在浏览器中动态输入、解释和运行的。它还具有 Java 所没有的一流函数和匿名函数。它可以直接访问网页元素,这对于进行客户端处理非常有用。
它们在语法上也有些相似,但仅此而已。
【讨论】:
【参考方案11】:看看Wikipedia link
JavaScript,尽管有名字,但本质上与 Java 编程语言无关,尽管两者都有共同的 C 语法,并且 JavaScript 复制了许多 Java 名称和命名约定。该语言最初被命名为“LiveScript”,但在 Netscape 和 Sun 的联合营销协议中重新命名,以换取 Netscape 将 Sun 的 Java 运行时与当时占主导地位的浏览器捆绑在一起。 JavaScript 中的关键设计原则继承自 Self 和 Scheme 编程语言。
【讨论】:
【参考方案12】:它们是具有不相关血统的独立语言。 Brendan Eich 最初是在 Netscape 创建 Javascript。它最初被称为摩卡。如果您愿意的话,选择 Javascript 作为名称是对当时由 Patrick Naughton、James Gosling 等人在 Sun 开发的占主导地位的 Java 编程语言的一种认可。人。
【讨论】:
【参考方案13】:One 本质上是一个玩具,专为编写小段代码而设计,传统上被缺乏经验的程序员使用和滥用。
另一种是用于网络浏览器的脚本语言。
【讨论】:
【参考方案14】:Java 和 Javascript 很相似,就像 Car 和 Carpet 很相似。
【讨论】:
很遗憾,我不能声称是原创性的。不过,我不记得我第一次听到它是在哪里。 我更喜欢火腿和仓鼠的版本。【参考方案15】:一切。它们是不相关的语言。
【讨论】:
手臂上的拳头。根据***,在你对我施了咒语之后,我必须这样做,然后我才能再次说话。 en.wikipedia.org/wiki/Jinx 你看错了——我现在要揍你。给我我的可乐。以上是关于JavaScript 和 Java 有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章