如何在比较中替换两个eval()

时间:2014-07-22 00:18:23

标签: javascript

在以下代码片段中:

    case "lessthan": {
        if (eval(firstvalue) >= eval(secondvalue)) {
            compare = " should be less than ";
            compReturn = false;
        }
        break;

我想删除eval()部分以获得更有效的代码,其中内容应该是数字。我读过其他类似的问题,我不明白,所以我希望这是一个简单的案例! 我是以

开头的
     if parseFloat(firstvalue) >= parseFloat(secondvalue) {

但是我已经阅读了很多关于eval()的信息,我有一种感觉,我错过了一些东西。

1 个答案:

答案 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;