相关疑难解决方法(0)

JavaScript与Java中数组中的非初始化项有什么区别?

我刚刚玩JavaScript并且遇到了一个简单的程序.

我用JavaScript声明了一个数组

var a = [0, 1, 2];
Run Code Online (Sandbox Code Playgroud)

然后由于JavaScript中的数组没有固定的大小,我们可以向数组中添加更多,我向数组添加了另一个整数.

a[3] = 3;
Run Code Online (Sandbox Code Playgroud)

正如预期的那样,如果我试图访问,a[4]我肯定会得到它undefined.

现在,如果我拿一个数组

var a = [0,1,2];
Run Code Online (Sandbox Code Playgroud)

并添加另一个元素

a[4] = 4;
Run Code Online (Sandbox Code Playgroud)

我故意没有定义a[3],而这也给了我a[3]作为undefined.

这是一个可以观察到的小提琴:http://jsfiddle.net/ZUrvM/

现在,如果我在Java中尝试相同的事情,

int[] a = new int[4];
a[0] = 0;
a[1] = 1;

a[3] = 3;
Run Code Online (Sandbox Code Playgroud)

然后我结束了

a[2] = 0;
Run Code Online (Sandbox Code Playgroud)

你可以在ideone上看到这个:https://ideone.com/WKn6Rf

我发现Java的原因是在声明数组时定义了四个变量,我们只能为声明的数组大小赋值.但是在JavaScript中,当我声明一个大小为3的数组然后添加第5个元素时,为什么它不考虑第4个元素,null或者0我们是否将数组大小增加到4以上?

为什么我在JavaScript中看到这种奇怪的行为,而在其他语言中却看不到?

javascript java arrays

20
推荐指数
1
解决办法
877
查看次数

标签 统计

arrays ×1

java ×1

javascript ×1