在以下代码片段中:
case "lessthan": {
if (eval(firstvalue) >= eval(secondvalue)) {
compare = " should be less than ";
compReturn = false;
}
break;
我想删除eval()部分以获得更有效的代码,其中内容应该是数字。我读过其他类似的问题,我不明白,所以我希望这是一个简单的案例! 我是以
开头的 if parseFloat(firstvalue) >= parseFloat(secondvalue) {
但是我已经阅读了很多关于eval()的信息,我有一种感觉,我错过了一些东西。
答案 0 :(得分:2)
如果您期望int值,可以使用parseInt
,还应检查返回值以确保获得可用的数字。
case "lessthan": {
var a = parseInt(firstvalue, 10), // 10 specifies base, so inputs aren't
b = parseInt(secondvalue, 10); // interpreted as hex, octal, etc
if ( isNaN(a) || isNaN(b) ) {
// TODO a parse failed, handle your error condition
}
else if (a >= b) {
compare = " should be less than ";
compReturn = false;
}
break;