Ошибка Cannot read property 'toUpperCase' of undefined в JavaScript — Q&A Хекслет
2026-02-26 18:26 Diff

Эта ошибка появляется, когда на вход функции передается undefined вместо строки. Метод toUpperCase существует только у строк, поэтому попытка вызвать его у undefined приводит к TypeError.

Возможные причины:

  1. Неправильный индекс при обращении к символу строки

    Если вы делаете что-то вроде toUpperCase(str[i]), убедитесь, что i находится в пределах длины строки:

    Любой выход за пределы массива символов вернет undefined.

  2. Передача в функцию не строки

    Проверьте, что вы действительно передаете строку, а не результат другой функции или переменную, которая может быть undefined.

  3. Отладка через console.log

    Перед вызовом toUpperCase выводите значение:

    Это поможет увидеть, где появляется undefined.

  4. Особенности сравнения символов

    Если нужно проверять отдельные символы на верхний регистр, можно делать так:

Это защитит от undefined.

Основная идея: ошибка не в самой функции toUpperCase, а в том, что в неё иногда попадает undefined. Нужно отследить, откуда это undefined приходит, и ограничить диапазон индексов или проверить значения до вызова метода.

Для сложных алгоритмов полезно разбирать код построчно, описывать действия переменных и использовать пошаговую отладку, чтобы выявить точное место возникновения undefined.