en.javascript.info/1-js/4-data-structures/3-string/1-ucfirst/solution.md
2015-03-10 12:36:58 +03:00

27 lines
No EOL
1.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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