.toLowerCase() делает все символы строчными. Но ведь по прави-
лам предложение должно начинаться с заглавной буквы? Как сделать
первый символ строки заглавным, а остальные — строчными?
! Попробуйте сами разобраться, как с помощью только что изученных
команд превратить строку "эЙ, кАК деЛа?" в "Эй, как дела?" .
Если ничего не выходит, сверьтесь с разделами, где рассказывается
о получении символа строки и использовании slice . Когда закон-
чите, вернитесь к этому месту и сравните свое решение с моим.
Вот один из вариантов решения:
Silly string —
var sillyString = "эЙ, кАК деЛа?";
буквально
var lowerString = sillyString.toLowerCase();
«глупая
var firstCharacter = lowerString[0];
строка»
var firstCharacterUpper = firstCharacter.toUpperCase();
Lower string —
var restOfString = lowerString.slice(1);
здесь «строка
firstCharacterUpper + restOfString;
в нижнем
"Эй, как дела?"
регистре»
First character —
Давайте разберем этот код построчно.
здесь «первая
В строке мы создаем новую перемен-
буква»
ную sillyString и кладем в нее строку,
First character
которую собираемся изменить. В строке
upper — здесь
мы с помощью .toLowerCase() получаем
«первая буква
версию sillyString, где все буквы строч-
в верхнем
ные ("эй, как дела?"), и кладем ее в новую
регистре»
переменную lowerString.
Rest of string —
В строке мы с помощью операции [0] по-
оставшаяся
лучаем первый символ lowerString (это «э»)
часть строки
и сохраняем это значение в переменной
fi rstCharacter (напоминаю, позиция 0
соответствует первому символу). Затем
в строке мы переводим fi rstCharacter
в верхний регистр и сохраняем в переменной fi rstCharacterUpper.
В строке мы с помощью slice получаем все символы
lowerString, начиная со второго ("й, как дела?"), и сохраняем их
в переменной restOfString. И наконец, в строке мы объединяем
40 Часть I. Основы
fi rstCharacterUpper («Э») и restOfString, что дает нам искомую
строку "Эй, как дела?".
Поскольку значения и переменные взаимозаменяемы, можно заме-
нить строки со по единственной строкой:
var sillyString = "эЙ, кАК деЛа?";
sillyString[0].toUpperCase() + sillyString.slice(1).
toLowerCase();
"Эй, как дела?"
Однако понять такой код сложнее, так что имеет смысл решать слож-
ные задачи вроде этой пошагово, с помощью переменных — по крайней
мере до тех пор, пока вы не привыкнете читать сложный код.
Булевы значения
Теперь поговорим о булевых значениях. В сущности, есть лишь два вари-
анта таких значений — это либо true (истина), либо false (ложь).
Например, вот простое выражение с булевым значением:
var javascriptIsCool = true;
Javascript
javascriptIsCool;
is cool —
true
Javascript —
это круто
Здесь мы создали новую переменную с именем javascriptIsCool
и присвоили ей булево значение true. Следующей строкой мы запро-
сили содержимое javascriptIsCool и, разумеется, получили true.
Логические операции
Подобно тому как числа можно объединять с помощью математических
операторов (+, −, *, / и других), булевы значения можно объединять
посредством булевых (логических) операторов. Результатом выражения,
составленного из булевых значений и булевых операторов, всегда будет
другое булево значение (либо true, либо false).
Три основных булевых оператора — это &&, || и !. Выглядят они
странновато, однако после небольшой практики пользоваться ими будет
несложно. Давайте познакомимся с ними поближе.
&& (И)
Оператор && означает «и». Вслух его называют «и», либо «и-и», либо «ампер-
санд-амперсанд» (амперсандом называется символ &). Используйте опе-
ратор && с двумя булевыми значениями, когда нужно узнать, равны ли
они оба true.
2. Типы данных и переменные 41
Например, перед тем как пойти в школу, вы хотите убедиться, что
приняли душ, а также взяли рюкзак. Если оба эти условия истинны
(true), можно идти в школу, но если хоть одно ложно (false), вы еще
не готовы.
var hadShower = true;
Had shower —
var hasBackpack = false;
принял душ
hadShower && hasBackpack;
Has backback —
false
есть рюкзак
Здесь мы устанавливаем переменную hadShower («вы при-
няли душ?») в true, а переменную hasBackpack («вы взяли
рюкзак?») в false. Далее, вводя hadShower && hasBackpack,
мы спрашиваем JavaScript: «равны ли оба этих значения
true»? Поскольку это не так (рюкзак не в руках), JavaScript
возвращает false (то есть вы не готовы идти в школу).
Давайте повторим попытку, установив на этот раз обе
переменные в true:
var hadShower = true;
var hasBackpack = true;
hadShower && hasBackpack;
true
Теперь JavaScript сообщает нам, что hadShower &&
Читать дальше
Конец ознакомительного отрывка
Купить книгу