当我将“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阅读更多信息。