JS Arithmetic 计算使用eval 正在相乘

JS Arithmetic calculations using eval are being multiplied

我正在使用提示创建一个基本计算器。用户输入一个数字、一个操作数和另一个数字,这将为他们提供正确的答案。

问题: 无论使用哪种运算符,我的号码都在成倍增加。例如,输入 5+5 得到的值是 25。

为什么我的 eval 计算会这样,即使我指定了不同的算术运算符?

我想不通 how/why 我的代码不正确。也许我忽略了作为新手的一些重要内容。任何帮助将不胜感激。

    var firstNumber = prompt("Enter a number", "");
    var sign = prompt("Enter an operand", "");
    var secondNumber = prompt("Enter another number", "");

    if (sign = "+") {
        answer = eval(+firstNumber + +secondNumber);
    }

    if (sign = "-") {
        answer = eval(+firstNumber - +secondNumber);
    }

    if (sign = "/") {
        answer = eval(+firstNumber / +secondNumber);
    }

    if (sign = "*") {
        answer = eval(+firstNumber * +secondNumber);
    }
    var answer = document.write("Your answer is" + answer);

您正在分配操作而不是检查是否相等。您需要使用 sign == *sign === *,因为使用 sign = "*" 只会使符号字面意思是 *

当然,你在做 if (sign = "*") 代替 if (sign == "*") 所以最后一次比较的结果是 true 每次

您在错误的 if 语句条件中为 sign 赋值。这样做

var firstNumber = prompt("Enter a number", "");
var sign = prompt("Enter an operand", "");
var secondNumber = prompt("Enter another number", "");

if (sign === "+") {
    answer = firstNumber + secondNumber;
}

if (sign === "-") {
    answer = firstNumber - secondNumber;
}

if (sign === "/") {
    answer = firstNumber / secondNumber;
}

if (sign === "*") {
    answer = firstNumber * secondNumber;
}
var answer = document.write("Your answer is" + answer);