当null值传递给其中一个参数

时间:2015-07-09 09:49:33

标签: javascript sahi

我使用以下代码比较两个值:

function CompareValue($ValueTobePresent,$ExpectedValue)
{
    var $ValueTobePresent=$ValueTobePresent.toLocaleLowerCase();
    var $ExpectedValue = $ExpectedValue.toLocaleLowerCase();
    _assertEqual($ValueTobePresent, $ExpectedValue);

}

现在我的问题是如果传递空值,则函数失败并显示以下消息: 记录异常:无法调用方法“toLocaleLowerCase”为null [81 ms] 无法将方法“toLocaleLowerCase”调用为null。

有没有办法可以解决它,以便我也可以处理空值? 此外,我有大约25个比较,所以我希望代码不是非常耗时。

由于

2 个答案:

答案 0 :(得分:1)

如果这对你有效,你可以用空字符串替换空值

function CompareValue($ValueTobePresent,$ExpectedValue)
{
    var $ValueTobePresent = ($ValueTobePresent || '').toLocaleLowerCase();
    var $ExpectedValue = ($ExpectedValue || '').toLocaleLowerCase();
    _assertEqual($ValueTobePresent, $ExpectedValue);
}

答案 1 :(得分:0)

  1. 移除var
  2. 中的function
  3. 使用ternary operator检查传递的参数是否有效
  4. 在致电toString()
  5. 之前使用toLocaleLowerCase()

    代码:

    function CompareValue($ValueTobePresent, $ExpectedValue) {
        $ValueTobePresent = $ValueTobePresent ? $ValueTobePresent.toString().toLocaleLowerCase() : '';
        $ExpectedValue = $ExpectedValue ? $ExpectedValue.toString().toLocaleLowerCase() : '';
        _assertEqual($ValueTobePresent, $ExpectedValue);
    }