javascript - 计算器:变量在 "if else"语句中以某种方式未定义

标签 javascript if-statement undefined calculator

我正在尝试用 Javascript 制作一个计算器。 我有一个要求输入运算符的函数。 如果用户输入除 *、/、+ 或 - 以外的任何内容,我希望它再次询问运算符(operator)。 如果用户输入可接受的运算符之一,一切正常,但是,如果输入了错误的运算符,并且第二次执行该函数,则运算符的值不知何故“未定义”。而且我不确定为什么......当我在 if 语句中调用该函数时,它不会跳回到 getOperator() 的开头,在那里我为运算符变量赋值吗? 谁能告诉我我做错了什么?

function getOperator() {
    var operator = getStringInputWithPrompt('Please enter the operator:');
    if ((operator !== "+") && (operator !== "*") && (operator !== "-") && (operator !== "/")) {
        console.log("\nSorry that was not a valid operator");
        getOperator();
    } else {
    return operator;  
    }
} 

最佳答案

if 中,您对 getOperator() 进行递归调用,但您不对其返回值执行任何操作。您可以立即返回。

console.log("\nSorry that was not a valid operator");
return getOperator();

关于javascript - 计算器:变量在 "if else"语句中以某种方式未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66321435/

相关文章:

wordpress - 是否可以在 WordPress 中测试空术语或类别?

c - gcc C if语句优化

if-statement - 计划的批处理文件备份

javascript - 为什么将其传递给匿名函数 : "undefined" ! = typeof global ?全局 : "undefined" ! = 窗口类型 && 窗口

javascript - Typescript 在没有 .dts 文件的情况下丢失模块加载信息

javascript - 测试 IOS Safari anchor 链接

JavaScript:避免对象构造函数中的 'this' 被事件覆盖?

javascript - Angular - 如何动态创建 Angular 二维数组?

jquery - Ajax 错误: Console says - POST is not defined

javascript - Webpack - 带有单个 budled js 文件的多页面应用程序