1.3 KiB
1.3 KiB
Мы не можем просто заменить первый символ, т.к. строки в JavaScript неизменяемы.
Но можно пересоздать строку на основе существующей, с заглавным первым символом:
var newStr = str[0].toUpperCase() + str.slice(1);
Однако, есть небольшая проблемка -- в случае, когда строка пуста, будет ошибка.
Ведь str[0] == undefined
, а у undefined
нет метода toUpperCase()
.
Выхода два. Первый -- использовать str.charAt(0)
, он всегда возвращает строку, для пустой строки -- пустую, но не undefined
. Второй -- отдельно проверить на пустую строку, вот так:
//+ run
function ucFirst(str) {
// только пустая строка в логическом контексте даст false
if (!str) return str;
return str[0].toUpperCase() + str.slice(1);
}
alert( ucFirst("вася") );
P.S. Возможны и более короткие решения, использующие методы для работы со строками, которые мы пройдём далее.