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);
我正在使用提示创建一个基本计算器。用户输入一个数字、一个操作数和另一个数字,这将为他们提供正确的答案。
问题: 无论使用哪种运算符,我的号码都在成倍增加。例如,输入 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);