Javascript和Java的关系
前言
经常会有些小白同学会问这样的问题
- Javascript是java的一种么?
- Java是不是包含Javascript呢?
这类问题,不仅在国内的知乎问答上,在国外stackoverflow.com上也会出现类似的问题。
那么Java和Javascript到底是什么关系呢?
经典的答案
- Java and Javascript are similar like Car and Carpet are similar - 来自 stackoverflow.com
- Java和Javascript的关系就像雷锋和雷峰塔的关系 - 来自知乎
我们可以看到,其实Java和Javascript没有任何关系。你完全可以把它们当做C和Perl来对待。
Javascript的起名
一般认为,当时Netscape之所以将LiveScript命名为 JavaScript,是因为Java是当时最流行的编程语言,带有 "Java" 的名字有助于这门新生语言的传播。
当然事实证明,这个效果达到了。
Javascript和Java语言的相同之处
- 语法和C语言都很相似
- JavaScript在设计时参照了Java的命名规则
Javascript和Java语言的区别
- Java是静态语言,而Javascript是动态语言
- Java是面向对象的,而Jascript是是基于原型的
- Java的构造函数是特殊的,且只能在对象创建时使用,而JavaScript 的构造函数仅仅是个函数而已。
- Java要求所有非块语句以分号结尾;JavaScript在要求特定的行末尾插入分号
- Java使用基于块的作用域;JavaScript使用基于函数的的作用域。
- Java对于非静态方法和对象有一个隐式作用域和隐式的类作用域,而JavaScript具有隐式全局作用域。
Javascript的特点
- JavaScript支持闭包,而Java可以使用匿名类模拟某种类型的“闭包”。(Java的未来版本可能支持真正的闭包)
- 所有JavaScript函数都是可变的,而Java函数只有显式标记时才是可变的
- JavaScript原型可以在运行时重新定义,并对所有引用的对象立即生效。而Java不能以影响任何现有对象实例的方式重新定义类
- JavaScript允许对象中的方法独立于其原型被重新定义(想想Ruby中的特征类,但使用了类固醇),而Java对象中的方法被绑定到它的类,并且不能在运行时重新定义。
小结
Java和JavaScript各有所长,Java的舞台在编程领域,而JavaScript的得心之处是在Web页面中,它几乎无所不能。
展开剩余53%