@CoyoteSS

Почему выводит undefined в JavaScript?

var toCapitalize = function(str) { // функция переводит каждый первый символ слова к верхнему регистру
  var i, result; // обьявление переменной счетчика и финальной строки
  if (typeof str !== 'string') { // если переданный аргумент не строка, то...
    console.log('It\'s not string!'); // выводим: это не строка!
  } else { // иначе
      for (i = 0; i < str.length; i++) { // запускаем цикл for, пока не закончится строка
        if (str[i] !== ' ') { // если символ строки не содержит пробел, то...
          i !== 0 ? result += str[i] : result += str[i].toUpperCase();
        } else { // а если пробел, то...
          result += str[i]; // прибавим этот символ к финальной строке
          result += str[i + 1].toUpperCase(); // прибавим следующий символ к строке, с верхним регистром
          i++; // так как обработали следующий символ, пропускаем следующую итерацию, увеличивая счетчик
        }
    }
  }
  return result; // в конце всех манипуляций, возвращаем финальную строку
};

var func = function(f) { // внешняя функция
  if (f !== undefined) { // если аргумент был передан, то...
    console.log(toCapitalize(f)); // callback: выводим результат функции с переданным аргументом в консоль
  } else { // иначе
    console.log('You don\' write a string!'); // выводим в консоль: ты не написал строку!
  }
};

func('some string for you'); // вызываем функцию с произвольной строкой

// результат выполнения функции: undefinedSome String For You

/* извините, что слишком много комментариев, я их добавил для удобства чтения,
обьясните пожалуйста почему выводит undefined в начале значения выражения вызвова функции*/
  • Вопрос задан
  • 657 просмотров
Пригласить эксперта
Ответы на вопрос 2
@msdosx86
function capitilize(str = '') {
  const words = str.split(' ');
  const capitilized = words.map(word => {
    const letters = word.split('');
    letters[0] = letters[0].toUpperCase();
    return letters.join('');
  });
  return capitilized.join(' ');
}
Ответ написан
@deniz1983
...
f !== undefined слово undefined в кавычки заключите, иначе ваше условие сейчас звучит как «если переменная f не равна переменной undefined»
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы