首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >当我在Javascript中编写循环检查代码时,如何避免在定义这些函数之前使用它们?

当我在Javascript中编写循环检查代码时,如何避免在定义这些函数之前使用它们?
EN

Stack Overflow用户
提问于 2018-10-29 08:35:16
回答 1查看 955关注 0票数 2

我不断地发现自己在这些循环中,我正在处理用户输入,以确保我得到了预期的结果。然而,如果不在函数定义之前调用它,我不知道如何做到这一点,这给我带来了eslint error:no-use-before-define

function tryAgain(){
  alertBadInput();
  getInput();
}

function getInput(){
  var input = askForInput();
  if (input === 'bad') {
    tryAgain();
    return;
  }
  processInput(input);
}

无论我定义这两个函数的顺序是什么,其中一个函数将在定义之前调用另一个函数。

它看起来在语法上是有效的,但是考虑到eslint错误,如果我希望避免这个错误,我还可以使用什么模式?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-29 08:57:10

尽管两个函数可以相互调用,但为了清晰起见(这就是它的用途)并遵循避免错误的编码标准,您可能会更好地使用while循环,如下所示:

function getInput() {
    var no_valid_input = true;
    var input = null;
    while (no_valid_input) {
        input = askForInput();
        if (input !== 'bad') {
            no_valid_input = false;
        } else {
            alertBadInput();
        }
    }
    processInput();
}

工作示例:

function processInput() {
    return alert('Yep, processing...');
}
function alertBadInput() {
    return alert('Nope');
}
function askForInput() {
    return prompt('What?');
}

function getInput() {
    var no_valid_input = true;
    var input = null;
    while (no_valid_input) {
        input = askForInput();
        if (input !== 'bad') {
            no_valid_input = false;
        } else {
            alertBadInput();
        }
    }
    processInput();
}

getInput();

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53037345

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档