1.2 JavaScript与Java的区别
JavaScript和Java在语法上很类似,但其本质有着根本的区别。Java是一种比JavaScript更加复杂的程序语言,而JavaScript相对于Java来说,则容易上手得多。
注意
JavaScript程序员者可以不那么注重程序的编写技巧,所以许多Java的特性在JavaScript中并不支持。
虽然JavaScript与Java有紧密的联系,但它们却是两个公司开发的不同的产品。Java是Sun公司推出的新一代面向对象的程序设计语言,其前身是Oak语言,特别适合Internet应用程序开发;而JavaScript是基于Netscape公司的产品,最初是为了扩展Netscape Navigator功能,而开发的一种可以嵌入Web中的基于对象和事件驱动的解释性语言,其前身是Live Script。下面比较这两种语言的异同。
(1)基于对象和面向对象。Java是一种真正的面向对象的语言,即使是开发简单的程序,也必须设计对象。JavaScript是一种脚本语言,可以用来制作与网络无关的,与用户交互作用的复杂软件。JavaScript是一种基于对象(object based)事件驱动(event driver)的编程语言。因而JavaScript本身可提供非常丰富的内部对象以供设计人员使用。
(2)解释和编译。两种语言在浏览器中的执行方式不一样。Java的源代码在传递到客户端执行之前,必须经过编译,因而客户端上必须具有相应平台上的仿真器或解释器,从而通过编译器或解释器实现独立于某个特定平台编译代码。
JavaScript是一种解释性编程语言,其源代码在发往客户端执行之前不需要经过编译,所以只需将文本格式的字符代码发送给客户端由浏览器解释执行。
(3)强变量和弱变量。两种语言所采取的变量是不一样的。Java采用强类型变量检查,即所有变量在编译之前必须声明。举例如下:
Integer x; String y; x=1234; y="4321";
其中,x = 1234说明是一个整数,y = "4321"说明是一个字符串。
JavaScript中的变量声明,采用弱类型,即变量在使用前无须做声明,解释器在运行时会检查其数据类型,举例如下:
x=1234; y="4321";
前者说明x为数值型变量,后者说明y为字符型变量。
(4)代码格式不一样。Java是一种与HTML无关的格式,必须通过像HTML引用外媒体那样进行装载,其代码以字节代码的形式保存在独立的文档中。
JavaScript的代码是一种文本字符格式,可以直接嵌入HTML文档中,并且可动态装载。编写HTML文档就像编辑文本文件一样方便。
(5)嵌入方式不一样。在HTML文档中,这两种编程语言的标识不同,JavaScript使用<Script>... </Script>来标识,而Java使用<applet>...</applet>来标识。
(6)静态联编和动态联编。Java采用静态联编,即Java的对象引用必须在编译时进行,以使编译器能够实现强类型检查。JavaScript采用动态联编,即JavaScript的对象引用在运行时进行检查,若不经编译,则无法实现对象引用的检查。