【问题标题】:What's the difference between JavaScript and Java?JavaScript 和 Java 有什么区别?
【发布时间】:2010-09-19 16:37:04
【问题描述】:

JavaScript 和 Java 有什么区别?

【问题讨论】:

    标签: java javascript


    【解决方案1】:

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

    【讨论】:

    • 很遗憾,我不能声称是原创性的。不过,我不记得我第一次听到它是在哪里。
    • 我更喜欢火腿和仓鼠的版本。
    【解决方案2】:

    One 本质上是一个玩具,专为编写小段代码而设计,传统上被缺乏经验的程序员使用和滥用。

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

    【讨论】:

      【解决方案3】:

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

      • 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 获得更多投票
      • 在这种情况下我都赞成。我们需要正确的答案,但天哪,像我们这样的极客,我们真的需要更多这种幽默
      • 您也可以在这里使用强类型和松散类型,而不是静态类型和动态类型。
      【解决方案4】:

      看看Wikipedia link

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

      【讨论】:

        【解决方案5】:

        一切。

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

        这两种语言完全不同。

        【讨论】:

        • Javascript 最初被称为 Livescript,如果没有重新命名,今天的世界可能会变得更美好!
        • 我怀疑这会引起混乱——这对公司有什么好处?我怀疑 意图 是利用 Java 的成功,尽管 效果 就是你所说的。
        • 通过调用与类似名称无关的东西来“驾驭java的成功”?对我来说,这听起来很像“为营销目的造成混乱”。
        • Sun 用“Sun Java Desktop”再次尝试了这个命名技巧,它本质上是 Gnome 的品牌版本,与 Java 无关。
        • 是的,它奏效了。 @Greg Hewgill,世界可能会变得更美好,但 Javascript 可能不会是今天的样子。
        【解决方案6】:

        【讨论】:

        • 你认为火腿是从哪里来的? ;)
        • 来自一只大仓鼠;它太大了,你可以把它和猪混为一谈。 ;)
        【解决方案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】:

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

          【讨论】:

          • 手臂上的一拳。根据维基百科,在你对我施了咒语之后,我必须在我可以再次说话之前这样做。 en.wikipedia.org/wiki/Jinx
          • 你误读了——我现在要揍你。给我我的可乐。
          【解决方案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-Script”是 Sun Microsystems 许可的商标,用于描述 Netscape 对该语言的实现。网景提交了 ECMA(欧洲计算机制造商协会)标准化语言 由于商标问题,语言的标准化版本 被尴尬的名字“ECMAScript”困住了。出于同样的商标原因, 微软的语言版本正式称为“JScript”。在实践中,只是 几乎每个人都称这种语言为 JavaScript。真正的名字是“ECMAScript”。

                两者是完全不同的语言!!!

                【讨论】:

                  【解决方案14】:

                  世界上几乎每台 PC 上都安装了至少一个 JavaScript 解释器。

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

                  【讨论】:

                    【解决方案15】:

                    Mozilla 团队(他们制作 Firefox)的A Re-Introduction to Javascript 应该解释一下。

                    【讨论】:

                      猜你喜欢
                      • 2011-06-28
                      • 2010-10-29
                      • 2010-09-13
                      • 1970-01-01
                      • 2023-03-07
                      • 2011-06-02
                      • 1970-01-01
                      • 2017-04-21
                      相关资源
                      最近更新 更多