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。
我认为 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。