所以我正在测试我的代码,当我在输入myFunctionOne的实际字符串之前在主菜单中输入2时,else语句不会打印出console.log(“您需要先输入一个String”);但是我收到一条错误消息,说长度未定义。我想要这样,如果用户选择输入2而没有先在myFuncitonOne中输入字符串,console.log将发出通知,通知他们应该首先输入一个字符串,然后将其返回给var提示1 =提示(“请输入1,2 ,3或退出”)。toLowerCase();
do {
var prompt1 = prompt("Please enter 1, 2, 3, or Exit").toLowerCase();
var prompt2;
var wordsConverted;
function myFunctionOne(input1) {
if (prompt1 == 1) {
prompt2 = prompt("Please enter a string");
while (prompt2.length == 0) {
prompt2 = prompt("You need to enter something");
}
}
}
myFunctionOne(prompt2);
function myFunctionTwo() {
if (prompt1 == 2) {
if(prompt2.length > 0) {
var words = prompt2.split(" ");
for(var i = 0; i < words.length; i++){
if(words[i].length > 5){
words[i] += "-bork";
}else{
words[i] += "-boink";
}
}
wordsConverted = (words.join(""));
console.log("String converted");
myFunctionOne(prompt1);
}
else{
console.log("You need to first enter a String");
}
}
}
myFunctionTwo();
}
while (prompt1 != "exit");
您的prompt2
变量在这种情况下永远不会获得值,这就是错误弹出的原因。您应该检查它是否未定义。
更改
if(prompt2.length > 0)
to
if(prompt2 && prompt2.length > 0)