JavaScript 如何解释 "i"

How does JavaScript interpret "i"

我认为 JavaScript 中的“i”只是匿名函数中传递的参数的通用名称。但是在我现在正在上的网课中,我们是这样使用I的:

var todos = ["Buy New Turtle"];

var input = prompt("What would you like to do?");

while(input !== "quit"){
    if(input === "list"){
        todos.forEach(function(todo, i){
            console.log(i + ": " + todo);
        });
    } else if(input === "new") {
        var newTodo = prompt("Enter new todo");
        todos.push(newTodo);
    }  

    //run code again
    input = prompt("What would you like to do?");
}
console.log("Okay, you Quit the App");

这是在 Chrome 开发人员控制台中执行的操作,当我输入“列表”时,它会记录我的数组项及其前面列出的相应索引号。我的问题是:JavaScript怎么知道“i”应该传入索引号?我用一堆随机参数名称来测试它来替换“I”和它仍然知道提供索引位置...这是如何工作的?

谢谢

传递给 .forEach 的回调函数可以有这些参数:

function callback ((element, index, arr), thisValue))

只有元素是必需的,其余都是可选的。 element 是我们在数组中迭代的元素, index 是该元素在数组中的索引, arr 指的是调用 .forEach 的数组, thisValue 指的是this关键字应该在函数中的值。

所以 i 指的是我们当前在迭代中的索引。 i 没有什么特别的,它不是关键字或任何东西。只是因为它是回调函数中的第二个参数。为此,我本可以将其命名为 idx。