indexOf不是一个函数

时间:2016-10-02 20:38:18

标签: javascript

我目前正在使用以下代码。在控制台中,它正在抛出

  

未捕获的TypeError:TotalAccountBalance.indexOf不是函数

我不知道还能做什么。搜索没有多大帮助。

var CurrentPreservedBalance, CurrentGeneralAccountBalance, TotalAccountBalance;
    CurrentPreservedBalance = '20.56';
    CurrentGeneralAccountBalance = '20.56';
    if( CurrentPreservedBalance && CurrentGeneralAccountBalance ){
        TotalAccountBalance = +CurrentPreservedBalance + +CurrentGeneralAccountBalance;
        console.log( TotalAccountBalance.indexOf('.') );
    } else {
        $('#total-fnpf-account-balance').val('$0.00');
        $('#total-account-balance').val('$0.00');
    }

3 个答案:

答案 0 :(得分:19)

indexOf()是字符串的方法,而不是数字。

console.log( TotalAccountBalance.toString().indexOf('.') );

答案 1 :(得分:2)

TotalAccountBalance = +CurrentPreservedBalance + +CurrentGeneralAccountBalance;

TotalAccountBalance是获取两个数字的结果(我们知道它们是数字,因为您使用了一元加运算符来转换它们)并且加在一起。这是另一个数字。

indexOf是您在字符串而非数字上找到的方法。

您可以转换为字符串:

(TotalAccountBalance + "").indexOf('.')

答案 2 :(得分:1)

TotalAccountBalance = +CurrentPreservedBalance + +CurrentGeneralAccountBalance;

unary plus operators将字符串转换为数字;为了得到正确的数学结果,这显然是理想的行为。

如果您想使用字符串函数(例如indexOf),则需要转换回字符串:

console.log( ("" + TotalAccountBalance).indexOf('.') );