犹记得刚刚接触Java的时候,有一天突然看见了Javascript,第一反应就是:这是什么?跟Java这么像,莫非它俩之间有什么不可告人的关系?
这就得从他们诞生时开始说起:
1994年的时候,网景公司(Netscape)发布了Navigator浏览器0.9版。这是历史上第一个比较成熟的网络浏览器,轰动一时。但是,这个版本的浏览器只能用来浏览,不具备与访问者互动的能力。因此,网景公司急需一种网页脚本语言,使得浏览器可以与网页互动。1995年Sun公司将Oak语言改名为Java,正式向市场推出,并且打出了“一次编写,到处运行(Write
once,run
anywhere)”的宣传口号。网景公司非常看好Java,决定与Sun公司结成联盟。仅一个月后,网景公司做出决定,未来的网页脚本语言,必须看上去与Java足够相似,但是比Java简单。程序员Brendan
Eich被指定为这种“简化版Java语言”的设计师。
但是Brendan
Eich对Java丝毫没有兴趣,用了10天时间就设计出了Javascript。总体的设计思路是:(1)借鉴C语言的基本语法;(2)借鉴Java语言的数据类型和内存管理;(3)借鉴Scheme语言,将函数提升到“第一等公民”(first
class)的地位;(4)借鉴Self语言,使用基于原型(prototype)的继承机制。也就是说,Java script在设计时所参考的对象不包括
Java,而包括了像 Self 和 Scheme
这样的语言,它实际上是函数式编程和面向对象编程两种语言风格的混合产物。并且javascript最初的名字并不是javascript,而是Livescript,名字中的“Java”是经过SUN
Microsystems公司授权的。
简单说java和Javascript是两个不同的语言。
1 语言特点:
1.1 弱类型:
Javascript在变量声明的时候并不严格区分数据类型,(var
变量名),不像java那样严格(类型:变量名)。也就说,Javascript面前一切平等,在他眼里大家都是人,而在java就有所不同,男人、女人、什么的……
基于这个特性,javascript在很多时候会都可以写的比java简洁,比如函数的声明等。
1.2 动态语言:
java在定义了一个数组的长度以后就不能再改变了,但是javascript却可以。并且java一个数组只能放同一种类型,但javascript可以在一个数组内加不同数据类型的数据。可以说Java比较死心眼,javascript则比较灵活。
1.3 脚本语言:
Java等后台语言都是编译后执行的,但是javascript却是边编译边执行。
2 数据类型
2.1 基础数据类型:
Java有八大数据类型:byte,short,intlong,float,double,char,Boolean。感觉javascript把上面的整理成了三种原始类型:number,string,boolean。另外还有两个特殊的原始类型是:null和undefined。
2.2 变量
Java:数据类型 变量名=值;
Javascript:var 变量名=值;数组
Java:
类型[] 数组名=new 类型[数量];
类型[] 数组名=new 类型[]{元素1,元素2…};
Javascript:
var 数组名=[];
var 数组名=new Array();
3 函数:
Java:返回值类型 函数名(类型 参数1,类型 参数2…){}
Javascript:function 函数名(参数1,参数2…){}
两者用途
java广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网等。
Javascript的用途是:1.嵌入动态文本于HTML页面;2.对浏览器事件做出响应;
3.读写HTML元素;4.在数据被提交到服务器之前验证数据;5.检测访客的浏览器信息; 6.控制cookies,包括创建和修改等。