#javascript
#javascript
Вопрос:
В настоящее время я работаю со следующим кодом. В консоли он выдает
Неперехваченная ошибка типа: TotalAccountBalance.indexOf не является функцией
Я не знаю, что еще делать. Поиск не очень помог.
var CurrentPreservedBalance, CurrentGeneralAccountBalance, TotalAccountBalance;
CurrentPreservedBalance = '20.56';
CurrentGeneralAccountBalance = '20.56';
if( CurrentPreservedBalance amp;amp; CurrentGeneralAccountBalance ){
TotalAccountBalance = CurrentPreservedBalance CurrentGeneralAccountBalance;
console.log( TotalAccountBalance.indexOf('.') );
} else {
$('#total-fnpf-account-balance').val('$0.00');
$('#total-account-balance').val('$0.00');
}
Комментарии:
1. Избавьтесь от одного из этих плюсов
CurrentPreservedBalance CurrentGeneralAccountBalance;
в середине. ТогдаTotalAccountBalance.
должно сработать. и это плюс спереди. Кроме того, удалите кавычки из ‘20.56’2. Кстати, зачем вам нужен индекс десятичного числа?
3. @zer00ne у моего клиента есть это глупое требование, из-за которого я даже не понимаю, что происходит.
4. Ах, не говорите больше, у многих клиентов действительно бывают моменты глупости больших масштабов.
Ответ №1:
indexOf()
это метод строк, а не чисел.
console.log( TotalAccountBalance.toString().indexOf('.') );
Комментарии:
1. Также в случае, если существует какой
null
-то сценарийTotalAccountBalance
, он может быть преобразован следующим образом, чтобы избежать ошибки:console.log( String(TotalAccountBalance).indexOf('.') );
Ответ №2:
TotalAccountBalance = CurrentPreservedBalance CurrentGeneralAccountBalance;
TotalAccountBalance
является результатом взятия двух чисел (мы знаем, что это числа, потому что вы использовали унарный оператор plus для их преобразования) и сложения их вместе. Это другое число.
indexOf
это метод, который вы находите в строках, а не в числах.
Вы могли бы преобразовать в строку:
(TotalAccountBalance "").indexOf('.')
Ответ №3:
TotalAccountBalance = CurrentPreservedBalance CurrentGeneralAccountBalance;
Операторы унарного плюса преобразуют строки в числа; это, очевидно, желательное поведение для получения правильного математического результата.
Если затем вы хотите использовать строковую функцию (например indexOf
), вам необходимо преобразовать обратно в строку:
console.log( ("" TotalAccountBalance).indexOf('.') );