虽然JavaScript中有Java,但他们之间的关系就如同印度和印度尼西亚一样——没有什么关系。只是JavaScript中的某些语法和Java类似而已(语法相似的语言一大堆)。

出身不同

  Java和JavaScript是由不同公司发布的不同的产品,Java是由Sun公司发布编程语言,而JavaScript是由Netscape公司发布的脚本语言。

变量不同

1. 变量定义时的区别

  定义变量时Java和JavaScript有区别。Java是强类型的语言,它要求每个变量必须在定义时明确指出这个变量是什么类型的;而JavaScript是弱类型的语言,它的变量是解释器运行时才知道这个变量是什么数据类型。

2. 真假值不同

  在Java中,只有false表示假,true表示真;而在JavaScript中,0、-0、""(空字符串)、false、null、undefined、NaN这七个值都表示假,而除了这七个值之外,其他的都是真。

3. 数组不同

  Java中数组是固定长度,只能放一种类型数据;而JavaScript中数组长度可变,可以放多种数据类型。

4. 对象不同

  Java中对象在类定义时有几个属性就有几个属性,不能随意添加;而JavaScript中对象的属性可以根据需要再添加或删除属性。

方法不同

1. 定义方法时的区别

  在Java中,不允许在方法中定义方法;而在JavaScript中,允许在方法中定义方法,因为JavaScript将方法视为变量。

2. 方法使用时不同

方法的参数问题

  Java中,方法的参数必须严格按照方法定义时的情况使用;而在JavaScript中,调用定义的方法时,传递的实参个数可以和定义时形参个数不同,例如下面的代码是正确的。

var f4 = function(a, b) {
	alert(a);
	alert(b);
}
f4("1");
f4(1,2,3);

  对于 f4("1"); 来说,相当于第一个参数是字符串1,第二个参数是undefined


  对于 f4(1,2,3); 来说,第三个参数没有用处,虽然传递了实参,但是没有形参接收,因此没什么用。

方法的返回值问题

  Java中方法的返回值为 void 的方法不能用来给变量赋值;而JavaScript中可以,此时变量的值是 undefined。

运算符不同

  JavaScript中的运算符和Java中的运算符用法基本相同,唯一不同的是JavaScript中多了一种运算符 === —— 全等运算符,表示值和类型都相等,而 == 表示值相等。

var num = 6;
var snum = "6";
console.log(num==snum);
console.log(num===snum);


  num 是Number类型的6,而 snum 是String类型的6,使用 == 会返回true,而使用 === 则会返回false。

for 循环

  JavaScript中提供了一种新的 for 循环的形式—— for in

var obj = {
	name: "柚咖",
	age: 18,
	study() {
		alert("正在学习");
	}
}
for (x in obj) {
	alert(x + "---" + obj[x]);
}

  for in 将每对象中的每个属性名和方法名逐一的遍历出来。

更多推荐

JavaScript和Java的区别