我有一些运行时返回Uncaught SyntaxError的代码,但我不明白为什么。
我尝试通过JSHint进行操作,但无济于事。
以下代码显然是错误的:
function compute(expr, x, string) {
var whatisx = "x=" + toString(x) + ",";
var tempAns = parseFloat(eval(whatisx + expr));
var roundedAnswer = roundNumber(tempAns, 3);
if (isNaN(tempAns) === true) {
alert("error");
}
if (string) {
return toString(roundedAnswer);
} else if (!string) {
return roundedAnswer;
} else {
return null;
console.log("Error trying to compute value. The string value must be boolean.");
}
}
当我运行它时,我没有任何控制台日志,并且说加号时出现错误:
var tempAns = parseFloat(eval(whatisx + expr));
同一程序中的另一个问题也是SyntaxError,是我的HTML。
这是我的html:
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<title>Grapher</title>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js" charset="utf-8"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.8.0/p5.js" charset="utf-8"></script>
<script type="text/javascript" src="functions.js" charset="utf-8"></script>
<script type="text/javascript" src="sketch.js" charset="utf-8"></script>
</head>
<body>
<form>
<label>Graph y=</label>
<input id="mathExpr" type="text" name="mathExpr" value="">
<label> from x=</label>
<input id="x_min" type="text" name="x_min" value="">
<label> to </label>
<input id="x_max" type="text" name="x_max" value="">
<input type="button" name="result" value="Result" onclick="compute(); runp5();">
</form>
<h2>Answer: <span id="output"></span></h2>
</body>
</html>
对此,它表示存在错误
<input type="button" name="result" value="Result" onclick="compute(); runp5();">
这两个我必须解决什么? 预先感谢。
编辑:问题已解决。我当时没有任何参数地调用计算。 (感谢@Pointy)
答案 0 :(得分:0)
我刚刚回到这个问题,我意识到自己犯了另一个错误。这是我的解决方法:
正如Pointy用户注意到的那样,我在调用compute()
时没有提供其必需的参数。
我应该在console.log()
之后的else
语句中添加return
,否则根本不会被调用:
// ...
else {
console.log('message'); // this should come before return
return null;
}
这实际上并不能解决我详述的问题,但我想为以后的读者指出这一点。