@bukasovseo said in Ошибка покупки:
Здравствуйте. Клиент по ошибке купил программу BASPremium. Ни разу ей не пользовался. Можно ли сделать возврат?
Ответил в личку
[[SAVED_CONTENT]] = '12'
[[REZ]] = [[SAVED_CONTENT]].split(':')[1]
[[STAT]] = [[SAVED_CONTENT]].split('|')[0]
if ( [[REZ]] != '' ) {
[[KOORD]] = [[REZ]].split(';')
}
TypeError: Result of expression 'VAR_REZ' [undefined] is not an object. во время выполнения действия 733295801
Иногда в SAVED_CONTENT переменная без : , и возникает такая ошибка. Как её избежать? Спасибо
Сделал так но не понятно почему не достаточно проверки что REZ не пустой
[[REZ]] = ''
[[STAT]] = ''
if ( [[SAVED_CONTENT]].indexOf(':') > -1 && [[SAVED_CONTENT]].indexOf('|') > -1 ) {
[[REZ]] = [[SAVED_CONTENT]].split(':')[1]
[[STAT]] = [[SAVED_CONTENT]].split('|')[0]
[[KOORD]] = [[REZ]].split(';')
}
@bigorat Что? Код во втором посте рабочий.
Не понятно почему в первом код не рабочий. Там же есть проверка что REZ не пустой.
SAVED_CONTENT часто приходит такой "123-321-7:aassa|78787"
но вот если в SAVED_CONTENT что то типа "TEXT" то не работал код в первом посте. Во втором работает для меня всё как надо.
ps в SAVED_CONTENT одновременно может быть все что угодно. Вообще не уловил Вашу логику почему там не может быть одновременно каких то знаков.
@gurkin4 said in Ошибка, не могу понять причину такой ошибки:
Уже где-то встречал. != должны отделяться пробелом
Вообще нет
@kuzkuz said in Ошибка, не могу понять причину такой ошибки:
Не понятно почему в первом код не рабочий. Там же есть проверка что REZ не пустой.
Потому что надо знать как сравниваются разные типы в js в данном случае [[REZ]] это undefined и он может быть равен только null, а пустой строке он не равен, поэтому все работает правильно.
[[SAVED_CONTENT]] = '12'
[[REZ]] = [[SAVED_CONTENT]].split(':')[1]
[[STAT]] = [[SAVED_CONTENT]].split('|')[0]
if ( [[REZ]] !== undefined ) {
[[KOORD]] = [[REZ]].split(';')
}
@UserTrue said in Ошибка, не могу понять причину такой ошибки:
Потому что надо знать как сравниваются разные типы в js
В дебагере BAS будет видно, кто undefined, а кто empty. Иногда сам туда посматриваю.
Можно писать код так, чтобы проверять сразу на пачку нужных значений. Но и тут могут быть подводные камни. Например, что будет, если переменная "0",''NaN" или еще какая подобная фигня, надо проверять отдельно.
let variableToCheck = "someValue";
if (!variableToCheck) {
console.log("The variable is null, undefined, or empty.");
} else {
console.log("The variable has a valid value!");
@sergerdn said in Ошибка, не могу понять причину такой ошибки:
В дебагере BAS будет видно, кто undefined, а кто empty. Иногда сам туда посматриваю.
Это тут причем? Дебаггер бас может сказать, как приводятся разные типы при сравнении? Он и сам понимал что там undefined, но не понимал почему его сравнение не работает как он ожидает.