在带有变量/while循环条件的javascript中出现问题



我运行代码并在提示时输入"yes",但while循环不会运行。我的代码有什么问题?

var answer = prompt("Would you like to buy something?").toLowerCase
while (answer === "yes") {
 var type = prompt("What item would you like to buy?").toLowerCase;
}

顺便说一下,这只是while循环周围的区域。代码的其余部分位于https://www.codecademy.com/alangdorf/codebits/uAlblD。

这是因为您实际上并没有执行toLowerCase函数。现在,answer变量是toLowerCase函数,您希望它是toLowerCase函数的结果

var answer = prompt("Would you like to buy something?").toLowerCase();
while (answer === 'yes') {
  var type = prompt("What item would you like to buy?").toLowerCase();
}

您可以通过运行上面的代码片段或运行这个有效的JSFiddle示例来看到它的工作。

更新:正如chriskelly在评论中所指出的,这将成为一个无限循环,因为在输入while之后,答案将始终为"yes",并且循环条件永远不会为false。

您的prompt(...).toLowerCase将在此处返回函数,而不是字符串:函数toLowerCase()

由于answer包含对某个函数的引用,将其与"yes"进行比较总是会失败。

使用圆括号来调用函数。我认为调用函数就是您在这里要做的。