JavaScript для детей — страница 6 из 48

впрочем, вы можете называть свои переменные как вам

угодно!

Создание новых переменных на основе

вычислений

Можно создавать новые переменные, выполняя матема-

тические действия с переменными, созданными ранее.

Давайте с помощью переменных выясним, сколько секунд

в году и каков ваш возраст в секундах! Но для начала разбе-

ремся, сколько секунд в одном часе.

Сколько секунд в часе

Сначала создадим две новые переменные — secondsInAMinute

Seconds

(количество секунд в минуте) и minutesInAHour (количество минут

in a minute —

в часе) — и присвоим им обеим значение 60 (поскольку, как мы знаем,

секунд

в минуте

в минуте 60 секунд, а в часе 60 минут). Теперь создадим переменную

secondsInAHour (количество секунд в часе), и пусть ее значение рав-

Minutes

няется secondsInAMinute умножить на minutesInAHour. И нако-

in a hour —

нец в строке  введем secondsInAHour, что означает «покажи мне

минут в часе

содержимое переменной secondsInAHour», и JavaScript тут же выдаст

ответ: 3600.

var secondsInAMinute = 60;

var minutesInAnHour = 60;

var secondsInAnHour = secondsInAMinute * minutesInAnHour;

 secondsInAnHour;

3600

Сколько секунд в сутках

Теперь создадим переменную hoursInADay (количество

Hours in a day —

часов в сутках) и присвоим ей значение 24. Затем созда-

часов в день

дим переменную secondsInADay (количество секунд

в сутках), и пусть она равняется secondsInAHour умно-

жить на hoursInADay. Запросив в строке  значение

secondsInADay, получим 86 400 — именно столько

секунд в сутках.

2. Типы данных и переменные 31

var hoursInADay = 24;

var secondsInADay = secondsInAnHour * hoursInADay;

 secondsInADay;

86400

Сколько секунд в году

Days in a year —

И наконец, создадим переменные daysInAYear (количество дней в году)

дней в году

и secondsInAYear (количество секунд в году): daysInAYear присвоим

значение 365, а secondsInAYear пусть равняется secondsInADay

умножить на daysInAYear. Запрашиваем значение secondsInAYear

и видим, что это число 31 536 000 (более 31 миллиона секунд!).

var daysInAYear = 365;

var secondsInAYear = secondsInADay * daysInAYear;

secondsInAYear;

31536000

Возраст в секундах

Теперь, зная, сколько секунд в году, вы можете запросто узнать свой воз-

раст в секундах (с точностью до последнего дня рождения). К примеру,

когда я пишу эти строки, мне 29 лет:

var age = 29;

age * secondsInAYear;

914544000

Чтобы вычислить свой возраст в секундах, введите тот же самый код,

но замените значение переменной age на ваш возраст. Или просто заме-

ните эту переменную на число, соответствующее вашему возрасту:

29 * secondsInAYear;

914544000

Смотрите-ка, мне исполнилось больше 900 миллионов секунд!

А вам?

Инкремент и декремент

Вам как программисту понадобится увеличивать или уменьшать зна-

чения числовых переменных на единицу. Например, у вас в программе

может быть переменная для подсчета, сколько раз за день вам сказали

32 Часть I. Основы

«Дай пять!». И при каждом новом приветствии эту переменную надо

будет увеличить на 1.

Увеличение на 1 называют инкрементом, а уменьшение на 1 —

декрементом. Выполняются инкремент и декремент с помощью опера-

торов ++ и --.

var highFives = 0;

High fives —

++highFives;

дай пять!

1

++highFives;

2

--highFives;

1

После выполнения оператора ++ значение highFives (количество

приветствий) увеличится на 1, а после выполнения оператора -- умень-

шится на 1. Также эти операторы можно писать после имени перемен-

ной — эффект будет прежним, однако после выполнения такой команды

JavaScript вернет первоначальное значение переменной, каким оно было

до инкремента или декремента.

highFives = 0;

highFives++;

0

highFives++;

1

highFives;

2

В этом примере мы сначала обнулили значение highFives.

Команда highFives++ увеличивает переменную на 1,

но число, которое печатает после этого JavaScript, является зна-

чением до инкремента. Однако, запрашивая значение highFives

в самом конце (после двух инкрементов), мы получаем 2.

+= (плюс-равно) и –= (минус-равно)

Чтобы увеличить значение переменной на заданное число,

можно написать такой код:

var x = 10;

x = x + 5;

x;

15

2. Типы данных и переменные 33

Сначала мы создаем переменную x и даем ей значение 10. Затем при-

сваиваем x значение x + 5 — то есть используем старое значение x, чтобы

получить новое значение. Таким образом, выражение x = x + 5 по сути

означает «увеличить x на 5».

В арсенале JavaScript есть более простой способ увеличения или

уменьшения переменной на заданную величину: это операторы += и −=.

Пусть у нас есть переменная x, тогда команда x += 5 означает то же

самое, что и x = x + 5. Оператор −= работает аналогично, то есть x −= 9

соответствует x = x – 9 (уменьшить x на 9). С помощью этих операторов

можно, например, управлять подсчетом очков в игре:

var score = 10;

Score — счет

score += 7;

17

score -= 3;

14

В этом примере мы сначала присваиваем переменной score (счет

игры) начальное количество очков (10). Потом, победив монстра, мы

увеличиваем счет на 7 очков с помощью оператора += (score += 7 соот-

ветствует score = score + 7). Поскольку изначально в score было

число 10, а 10 + 7 = 17, этой командой мы установили счет в 17 очков.

После победы над монстром мы столкнулись с метеоритом, и счет

уменьшился на 3 очка. Опять же, score -= 3 это то же самое, что

и score = score - 3. Поскольку перед этим в score было 17, score - 3

равняется 14; это число и будет новым значением score.

ПОПР ОБУ ЙТЕ !

Есть и другие операторы, похожие на += и -=. Например, *= и /=. Как вы

думаете, для чего они? Опробуйте их в деле с воздушными шариками:


Balloon —

var balloons = 100;

воздушный

balloons *= 2;

шар

???

Что делает команда balloons *= 2? А теперь попробуйте такой код:

var balloons = 100;

balloons /= 4;

???

Что делает команда balloons /= 4?

34 Часть I. Основы

Строки

До сих пор мы имели дело только с числами. Пора познакомиться с еще

одним типом данных — со строками. В JavaScript (как и в большинстве

других языков программирования) строка является набором симво-

лов — букв, цифр, знаков пунктуации и пробелов. Чтобы JavaScript знал,

где начинается и заканчивается строка, ее берут в кавычки. Вот класси-

ческий пример с фразой «Привет, мир!»:

"Привет, мир!";

"Привет, мир!"

Чтобы создать строку, поставьте знак двойной кавычки ("), затем

введите какой-нибудь текст и закройте строку еще одной двой-

ной кавычкой. Можно пользоваться и одинарными кавычками ('),

однако, чтобы не путаться, все строки в этой книге будут в двойных

кавычках.

Строки можно хранить в переменных, так же как числа:

var myAwesomeString = "Что-то ОЧЕНЬ крутое!!!";

My awesome

string —

Моя крутая

строка

Также ничто не мешает присвоить строковое значение переменной,

где раньше хранилось число:

My thing —

var myThing = 5;

моя штука

myThing = "это строка";

"это строка"

А что если записать в кавычках число? Строка это будет или число?

В JavaScript строка остается строкой, даже если там хранятся цифровые

символы. Например:

Number nine —

var numberNine = 9;

номер девять

var stringNine = "9";

String nine —

строка девять

В переменной numberNine (число девять) хранится число, а в пере-

менной stringNine (строка девять) — строка. Чтобы выяснить, в чем их

различие, посмотрим, как они реагируют на сложение:

2. Типы данных и переменные 35

numberNine + numberNine;

18

stringNine + stringNine;

"99"

Сложив числовые значения 9 и 9, мы

получили 18. Однако при использовании опе-

ратора + со строками "9" и "9" эти строки

просто склеиваются воедино, образуя "99".

Объединение строк

Как мы только что убедились, оператор +

можно использовать и со строками, однако

действует он при этом совсем иначе, чем с числами. С помощью опе-

ратора + строки можно объединять: результатом будет новая строка,

состоящая из первой строки, к концу которой присоединена вторая:

Greeting —

var greeting = "Привет";

приветствие

var myName = "Ник";

greeting + myName;

My name —

"ПриветНик"

мое имя

Здесь мы создали две переменные (greeting и myName) и присвоили

каждой из них строковое значение ("Привет" и "Ник" соответственно).

При сложении этих переменных строки объединяются, образуя новую

строку — "ПриветНик".

Впрочем, не все тут идеально — между "Привет" и "Ник" должен

стоять пробел и запятая. JavaScript не ставит пробелов по собственной

инициативе, зато его можно попросить его об этом, добавив пробел

к одной из первоначальных строк:

 var greeting = "Привет, ";

var myName = "Ник";

greeting + myName;

"Привет, Ник"

Дополнительный пробел перед закрывающей кавычкой в строке 

дает пробел в середине результирующей строки.

Помимо их объединения, со строками можно выполнять множество

разных действий. Вот несколько примеров.