JavaScript和Java的区别有哪几个方面
- 2017-02-21 19:51:26
- 3,135 次阅读
- 1
尽管Java与JavaScript名称相似,但这两种语言却有许多显著的差别。首先,它们是两个公司开发的两个不同的产品。Java是Sun公司推出的新一代面向对象的程序设计语言,特别适合Internet应用程序的开发。而JavaScript是Netscape公司的产品,它是为了扩展Netscape Navigator功能而开发的一种可以嵌入Web页面中的基于对象和事件驱动的解释性语言。其次,它们有各自的特点。例如,JavaScript是用于HTML功能的,提供了能够响应Web页面事件的脚本。这样,它可以完全访问浏览器窗口的各个部分。而Java是用于实现嵌入Web页面的可执行内容的。因此,它具有更强大的编程功能,但这些功能限制在有限的浏览器窗口区中。下面从以下几个方面对这两种语言作一下比较。
①编译与解释
Java与JavaScript之间最显著的区别是执行方式的不同。
Java是编译语言,用于开发安全的、高性能的Web应用程序。Java的源代码在传递到客户端执行之前,必须经过编译,因而客户端上必须具有相应平台上的仿真器或解释器,Java可以通过编译器或解释器实现独立于某个特定的平台编译代码的束缚。
JavaScript是一种解释性编程语言。其源代码在发往客户端执行之前不需经过编译,而是将文本格式的字符代码发送给客户端由浏览器解释执行。JavaScript是用于创建嵌入HTML文档的脚本的。这些脚本可以控制文档的布局,还可以定义处理用户事件的函数。因此,JavaScript可以看成是HTML的扩展。从这个角度看,JavaScript必须作为源程序代码放在HTML中,以便浏览器检查。所以JavaScript是解释性语言,而不是与Java类似的编译语言。
②面向对象与基于对象
Java和JavaScript支持面向对象编程的程度不同。
Java是完全的面向对象的语言,支持除多重继承以外的所有面向对象的编程特征。即便如此,Java仍用单一继承与接口结构的组合提供了多重继承的特点,并且保持了单一继承所具有的简单类结构。利用Java语言即使是开发简单的程序,也必须设计对象。
JavaScript则并不完全支持面向对象编程,而是采用最实用的面向对象编程特征。例如,JavaScript支持对象类型、实例化、合成、复合和多态,但不支持分类和继承,它是一种基于对象(Object Based)和事件驱动(Event Driver)的编程语言,因而,它本身提供了非常丰富的内部对象供设计人员使用。
③强分类和松散分类
JavaScript是松散分类的语言,而Java是强分类的语言。松散分类和强分类的差别表明了两种语言用途上的不同。
Java的目标是开发安全可靠的语言,必须用强分类来达到这种目标。将对象操作限制在显式定义的对象上,这是Java安全性的基础。在Java中所有变量在编译之前必须作声明,强分类语言不能自动进行数据类型转换,它会把不适当的类型转化称为错误。
JavaScript与大多数脚本语言一样,是一种松散分类语言。变量在使用前不需要作声明,这样可以减少脚本的总长度。解释器在运行时会检查其数据类型,并自动从一种类型转化为另外一种类型。通过松散分类,脚本语言为编程人员提供了更多的权利和责任。
④代码格式和嵌入方式
Java是一种与HTML无关的格式,必须通过像HTML中引用多媒体那样进行装载,其代码以字节代码的形式保存在独立的文档中。将Java代码嵌入HTML文档中,必须使用<applet>…</applet>来??? 标识。
JavaScript代码是一种文本字符格式,可以直接嵌入HTML文档中,并可动态装载。编写HTML文档就像编辑文本文件一样方便。在HTML文档中嵌入JavaScript代码时,要使用<script>…</script>来标识。
文章评论 (0)