javascript - 为什么当我第二次将“q”传递给我的输入时,它不会中断循环?

当我将“q”传递给我的输入时,它第一次起作用,但在那之后,它就不再起作用了。为什么?感谢任何善意的建议。

alert("Welcome to your To-Do List!")

let userInput = prompt("What would you like to do?");

let toDo = [];

while (userInput != "q") {
    let userInput = prompt("What would you like to do?");
    console.log(userInput);
}

回答1

因为您在循环内声明了一个新的 userInput 变量,所以您需要重新分配给同一个变量。

alert("Welcome to your To-Do List!")

let userInput = prompt("What would you like to do?");

let todos = [];

while (userInput != "q") {
  todos.push(userInput);
  userInput = prompt("What would you like to do?");
}

console.log(todos);

回答2

因为您在 while loop 中再次定义了用户输入变量。这使它在 while loop 的本地范围内。只需在 while loop 中的变量 user Input 之前删除 let。

回答3

问题是第三个let。它正在创建另一个 userInput,其范围为那个内部块,它遮住了外部块。

尝试将其更改为:

alert("Welcome to your To-Do List!")

let userInput = prompt("What would you like to do?");

let toDo = [];

while (userInput != "q") {
    userInput = prompt("What would you like to do?");
    console.log(userInput);
}

您可以在https://www.w3schools.com/js/js_let.asp阅读更多信息。

相似文章

随机推荐

最新文章