renovations

This commit is contained in:
Ilya Kantor 2015-01-11 01:54:57 +03:00
parent 4b8b168fd2
commit c7d4c7e3ff
172 changed files with 869 additions and 244 deletions

View file

@ -0,0 +1,5 @@
function ucFirst(str) {
if (!str) return str;
return str[0].toUpperCase() + str.slice(1);
}

View file

@ -0,0 +1,9 @@
describe("ucFirst", function() {
it('делает первый символ заглавным', function() {
assert.strictEqual( ucFirst("вася"), "Вася" );
});
it('для пустой строки возвращает пустую строку', function() {
assert.strictEqual( ucFirst(""), "" );
});
});

View file

@ -0,0 +1,27 @@
Мы не можем просто заменить первый символ, т.к. строки в 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. Возможны и более короткие решения, использующие методы для работы со строками, которые мы пройдём далее.

View file

@ -0,0 +1,12 @@
# Сделать первый символ заглавным
[importance 5]
Напишите функцию `ucFirst(str)`, которая возвращает строку `str` с заглавным первым символом, например:
```js
ucFirst("вася") == "Вася";
ucFirst("") == ""; // нет ошибок при пустой строке
```
P.S. В JavaScript нет встроенного метода для этого. Создайте функцию, используя `toUpperCase()` и `charAt()`.