Т И П Ы Д А Н Н Ы Х И П Е Р Е М Е Н Н Ы Е
Программирование — это работа с данными, но что такое данные?
Данные — это информация, которая хранится в наших компьютерных
программах. Например, ваше имя — это элемент данных, и ваш возраст
тоже. Цвет волос, количество братьев и сестер, ваш адрес и пол — все это
данные.
В JavaScript есть три основных типа данных: числа, строки и булевы
значения. Числа — они и есть числа, тут все понятно. Например, числом
можно выразить возраст или рост.
В JavaScript числа записываются так:
5;
Любые текстовые данные записываются в строки. В JavaScript ваше
имя можно выразить строкой (так же как и адрес вашей электронной
почты).
Строки выглядят так:
"Привет, я строка";
Булевы значения могут хранить одну из двух величин —
либо это
true («истина»), либо false («ложь»). Например, таким
способом можно показать, носите ли вы очки или любите ли вы
брокколи.
26
Часть I. Основы
Пример булева значения:
true;
С данными разных типов и обращаться следует по-разному.
Например, перемножить два числа можно, а перемножить две строки —
нет. Зато, имея строку, можно выделить пять ее первых символов. Взяв
два булевых значения, можно проверить, являются ли они оба «истиной»
(
true). Вот все эти действия на примере:
99 * 123;
12177
"Вот длинная строка".slice(0, 3);
"
Вот
"
true && false;
false
Любые данные в JavaScript — не более чем сочетание этих основных
типов. Далее мы по очереди рассмотрим каждый тип данных и изучим
различные способы работы с ними.
!
Наверное, вы заметили, что все эти команды оканчиваются
на точку с запятой (;). Этим символом обозначают конец каждой
отдельной команды или инструкции языка JavaScript — примерно
так же, как точка отмечает конец предложения.
Числа и операторы
JavaScript позволяет выполнять основные математические опера-
ции, такие как сложение, вычитание, умножение и деление. Для
их записи используются символы +, −, * и /, которые называют
опе раторами.
Консоль JavaScript можно использовать как калькулятор. Один
из примеров — сложение 3 и 4 — нам уже знаком. Давайте вычислим
что-нибудь посложнее: сколько будет 12345 плюс 56789?
12345 + 56789;
69134
Посчитать это в уме не так уж просто, а JavaScript мгновенно спра-
вился с задачей.
2. Типы данных и переменные
27
Можно сложить несколько чисел с помощью нескольких знаков «плюс»:
22 + 33 + 44;
99
Также JavaScript умеет вычитать...
1000 - 17;
983
умножать (с помощью символа «звездочка»)...
123 * 456;
56088
и делить (с помощью косой черты — слэша)...
12345 / 250;
49.38
Кроме того, можно объединять эти простые операции, составляя
более сложные выражения, вроде такого:
1234 + 57 * 3 - 31 / 4;
1397.25
Есть один нюанс — результат вычислений зависит
от порядка, в котором JavaScript выполняет отдельные
операции. В математике существует правило, по которому
умножение и деление выполняются прежде, чем сложение
и вычитание, и JavaScript ему следует.
Порядок, в котором интерпретатор JavaScript выполняет
эти операции, показан на рис. 2.1. Сначала он умножает
57 * 3, получая 171 (выделено красным). Затем делит 31 / 4,
получая 7.75 (выделено синим). Затем складывает 1234 + 171,
получая 1405 (выделено зеленым). И наконец, вычитает
1405 − 7.75, что дает 1397.25 — окончательный результат.
Но как быть, если вы хотите выполнить сложение
и вычитание до умножения и деления? Для примера предпо-
ложим, что у вас есть 1 брат, 3 сестры и 8 карамелек, которые
1397.25
1234 + 171
-
7.75
1234 +
171
-
31 / 4
1234 +
57 * 3
- 31 / 4
1405
- 7.75
Рис. 2.1. Очередность выполнения
операций: умножение, деление,
сложение, вычитание
28
Часть I. Основы
вы решили поровну разделить между ними (свою долю вы уже прикарма-
нили). Нужно разделить 8 на общее количество братьев и сестер.
Попытаемся это сделать:
8 / 1 + 3;
11
Это не может быть верным ответом! Не получится дать
каждому родственнику по 11 карамелек, если у вас всего-то
8 конфет! Проблема в том, что JavaScript выполняет деление
прежде, чем сложение, то есть он делит 8 на 1 (что равно 8)
и затем прибавляет 3, получая в результате 11. Чтобы испра-
вить эту ошибку, заставим JavaScript сначала выполнить
сложение, воспользовавшись скобками:
8 / (1 + 3);
2
Так гораздо лучше — вышло по две карамельки каждому из род-
ственников. Скобки вынудили JavaScript сложить 1 и 3 до деления 8 на 4.
ПОПР ОБУ ЙТЕ !
Предположим, ваша подруга пытается подсчитать с помощью JavaScript,
сколько ей нужно купить воздушных шаров. Она устраивает вечеринку
и хочет, чтобы каждый из гостей смог надуть по 2 шарика. Сначала было
приглашено 15 человек, но потом ваша подруга позвала еще 9.
Она написала такой код:
15 + 9 * 2;
33
Однако ответ, судя по всему, неверен.
Где надо поставить скобки, чтобы JavaScript сначала складывал, а потом
умножал, и сколько шариков нужно вашей подруге на самом деле?
Переменные
Значениям в JavaScript можно давать имена, используя переменные.
Переменная похожа на ящичек, в который помещается лишь один пред-
мет. Чтобы положить туда что-то еще, прежнее содержимое придется
заменить.
Чтобы создать новую переменную, используйте ключевое слово
var,
после которого укажите имя переменной. Ключевое слово — это слово,
2. Типы данных и переменные
29
обладающее для JavaScript особым значением. В данном случае, когда
JavaScript встречает слово
var, он понимает, что следом указано имя
новой переменной. Например, вот как создать переменную с именем nick:
var nick;
undefined
Мы создали новую переменную под названием nick. В ответ консоль
выдала
undefi ned — «значение не определено». Однако это не ошибка!
JavaScript всегда так делает, если команда не возвращает какого-либо
значения. Вы спросите, а что такое «возвращать значение»? Вот пример:
когда вы ввели
12345 + 56789;, консоль вернула значение 69134. Однако
в JavaScript команда создания переменной никакого значения не возвра-
щает, поэтому интерпретатор печатает
undefi ned.
В этом примере и дальше мы будем давать переменным англоязыч-
ные имена, потому что английский — основной язык всей IT-области
и программы принято писать только латиницей (кроме комментариев
и строковых значений). Использовать русскоязычные имена перемен-
ных — это как если при составлении математических уравнений вме-
сто x и y вы использовали бы русские буквы. Можно, но не принято.
Итак, чтобы задать переменной значение, используйте знак «равно»:
var age = 12;
undefined
Задание значения переменной называют присваиванием (здесь мы
присваиваем значение 12 переменной
age). И опять в консоли появля-
ется
undefi ned, поскольку мы только что создали новую переменную.
(В дальнейших примерах я буду пропускать это
undefi ned.)
Теперь в интерпретаторе есть переменная
age, которой присвоено
значение 12. И если ввести в консоли имя
age, интерпретатор выдаст
значение этой переменной:
age;
12
Здорово! При этом значение переменной не высечено в камне (пере-
менные потому так и зовутся, что могут менять значения), и, если вам
вздумается его обновить, просто используйте знак «равно» еще раз.
age = 13;
13
Undefined
—
значение
не определено
Аge
— возраст
|