27 lines
No EOL
1.3 KiB
Markdown
27 lines
No EOL
1.3 KiB
Markdown
Мы не можем просто заменить первый символ, т.к. строки в 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. Возможны и более короткие решения, использующие методы для работы со строками, которые мы пройдём далее. |