Javascript i(索引,迭代器):如果用作变量,它是否总是被解释为索引位​​置?

时间:2012-07-17 02:59:46

标签: javascript

var names = ["Ringo", "John", "Paul", "George"];

for (var i = 0; i < names.length; i++) {
    alert("Say hello to " + names[i]);
}

在上面的代码中,我假设它是最后一块(names [i])使得数组的索引发生变化以给我正确的名称。这是真的?到底发生了什么?什么使索引发生变化,以便更改名称?如果我要为变量使用另一个标签,说'a','b'或甚至'counter',而不是'i',它还能用吗?

2 个答案:

答案 0 :(得分:3)

第一部分 var names = ["Ringo", "John", "Paul", "George"]; 是你的数组定义。您正在加载包含4个项目的JavaScript数组。它们在数组中的索引如下:

0 = "Ringo"
1 = "John"
2 = "Paul"
3 = "George"

要在JS中单独引用这些项目,您可以这样做:

var nameOne = names[0]; //nameOne = "Ringo"
var nameTwo = names[1]; //nameTwo = "John"

代码中的for循环遍历数组中的每个项目。 var i = 0表示我们正在创建一个新变量以用作数组的索引。这可以很容易var avar bvar indexOfTheArray。随你。

下一部分i < names.length是导致for循环重复直到满足为止的条件。在这种情况下,只要i的值小于数组names的长度,它就表示“循环”。 array.length给出数组中的项目总数。所以names.length等于4。

最后一部分是一个特殊的JS命令i++。这表示“将i”的值加1。

每次for循环到达结束括号时,它会递增i,并评估条件。

在循环内部,i表示您正在使用的数组的当前索引。

您可以在names[i]循环中多次使用for,并且在下次到达结束括号并且循环回来之前它不会改变。然后i将递增,您将获得数组中的下一个值。

答案 1 :(得分:1)

i是一个完全普通的变量 由于循环中的i++语句,它会增加。

您可以使用任何字符串或数值执行数组索引,无论它来自何处。