我的自我教育进展缓慢,而且我遇到了问题。我试图从用户那里获取文本输入。然后,我想要检查输入本身的大写版本。我通过labs.codecademy.com运行代码(如果相关的话)。
代码:
function rollerInput() {
var input = prompt("Do you want to reroll? You have " + rerolls + " rerolls left. Y/N?");
input = input.toUpperCase;
if(input === null) {
console.log("Please enter Y or N");
rollerInput();
} else if(input === "") {
console.log("Please enter Y or N");
rollerInput();
} else if(input === "Y" && rerolls !== 1) {
rerolls = rerolls -1;
reRoller();
} else if(input === "Y" && rerolls === 1) {
console.log("You have no rerolls left.");
}
}
问题在于检查Y或N的ifs.Y和y都没有产生任何反应。我确定我错过了一些简单的东西,但我无法修复它以挽救我的生命。
答案 0 :(得分:0)
toUpperCase
是一种方法,您必须使用方括号()
input = input.toUpperCase();
答案 1 :(得分:0)
input = input.toUpperCase
将函数 toUpperCase
存储在变量input
中。您想要调用函数。
使用
input = input.toUpperCase();
这是x = function () { }
和x = (function() { })()
之间的区别 - 第一个存储函数,第二个执行函数并存储返回值。
另一个问题是你在检查toUpperCase
之前盲目地调用null
。如果用户取消对话框,则会导致错误。当您知道实际将定义null
时,您需要在input.toUpperCase
项检查中移动测试。
答案 2 :(得分:0)
是的,你没有调用该功能。
input = input.toUpperCase();