Роботландский Университет © А.А.Дуванов

# ЗНАКОМСТВО С ЯЗЫКОМ

i | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | ?

урок 1 | зачет | дополнения | урок 3

## урок 2: переменные, константы, выражения

Мы уже познакомились с функцией `alert`.

Она предназначена для создания информационного окна. Окно “всплывает” на экран и содержит информацию для пользователя. Единственная кнопка Ok позволяет убрать окно с экрана и разрешает браузеру продолжить построение документа.

Аргументом функции `alert` может быть текстовая константа, она заключается в двойные или одинарные кавычки:

     alert("Офелия, о нимфа! Помяни грехи мои в молитвах.");
     alert('Птичка Божия не знает ни заботы, ни труда.');

Аргументом функции `alert` может быть переменная и, в общем случае, любое выражение.

### переменные и константы

В JavaScript нет описателей типа, подобных `int`, `char` в Си или `Integer`, `Byte` в Паскале. Тип переменной определяется ее текущим значением и может меняться при выполнении программы много раз.

##### пример

    x = "3";
| Сейчас переменная `x` строкового типа, ее значение — строка `"3"`.
    x = 3;
| Сейчас переменная `x` целого типа, ее значение — число `3`.
    x = "Оценка=" + x;
| Сейчас переменная `x` строкового типа, ее значением является строка `"Оценка=3"`.

В JavaScript можно использовать константы следующих видов:

#### целое число

    255
| десятичное целое
    0377
| восьмеричное целое (начинается с “0”)
    0xFF
| шестнадцатеричное целое (начинается с “0x”)

#### дробное число

    3.14
| обычная запись
    2.3E8
| “инженерная” запись (2.3 * 108)

#### строка

    "Привет!"
    'Привет!'
    "It\'s Ok!"
    "\"ВАЗ 2104\""
| Для кавычек внутри строки используют указания \" и \'
    "Перва\я строка.\nСтрока втора\я."
| Внутри записи можно использовать: \n - перевод строки \я - буква я \С - буква С
    'Кинотеатр "Ударник"'
    "I'm programmer"
| Внутри одинарных кавычек можно использовать двойные без символа “\”. И наоборот.

### описание переменных

Переменная должна быть описана до ее использования.

Для описаний используется ключевое слово var:

    var x;                  // Переменная с именем x.
    var y = 5;              // Описание с присвоением числа.
    var mes = "дядя Федор"; // Описание с присвоением строки.

Для образования имен переменных используются идентификаторы.

Идентификатор — это последовательность из латинских букв и арабских цифр, которая начинается с буквы. В записи разрешается использовать символ подчеркивания “_” наравне с латинскими буквами.

Регистр буквы в имени переменной имеет значение. Переменные с именами `Counter` и `counter` считаются разными.

### выражения

Для арифметических операций используются следующие обозначения:

знак | название | пример
--- | --- | ---
`-` | унарный минус | `-10`
`+` | сложение | `x+y`
`-` | вычитание | `x-10`
`*` | умножение | `2*x`
`/` | деление | `у/7`
`%` | остаток от деления | `x%3`

Для строковых выражений используется операция соединения (конкатенации), обозначаемая знаком “+”:

    person = "Крокодил " + "Гена";
| Переменная `person` получает значение `"Крокодил Гена"`.
    x = "2" + 1;
| Переменная `x` получает значение `"21"`. Заметьте, “21” — не число, а строка! Когда операция “+” связывает строку с другим типом, результат преобразуется в строку.

### команды

Команда завершается в JavaScript символом “;”. Правила языка разрешают опускать этот знак в конце строки и перед закрывающей скобкой “}”.

#### комментарий

Наряду с уже известным нам строковым комментарием “//” можно использовать блоковый комментарий “/* ... */”.

строковый комментарий |  | блоковый комментарий
--- | --- | ---
    // Это строковый комментарий.
    /*
      А это
      блоковый комментарий.
    */

#### вызов функции

Пока была показана только функция `alert`:

    alert(выражение);

Аргументом этой функции может быть выражение, имеющие своим значением как текстовое, так и числовое значение.

    var ex1 = "Ищите";
    var ex2 = "обрящете";
    alert(ex1 + " и " + ex2);
    var x = "48";
    var ex1 = "попугаев";
    alert(x + " " + ex1);
    var x = 2;
    var y = 3;
    alert("Результат умножения: " + x*y);

#### присваивание

Наряду с привычным присваиванием вида `переменная=выражение`, можно использовать следующие записи:

общий вид | пример | что означает
--- | --- | ---
`переменная++;` | `x++;` | `x = x + 1;`
`++переменная;` | `++x;` | `x = x + 1;`
`переменная--;` | `x--;` | `x = x - 1;`
`--переменная;` | `--x;` | `x = x - 1;`
`переменная += выражение;` | `x+="кот";` | `x = x + "кот";`
`переменная -= выражение;` | `x-=2;` | `x = x - 2;`
`переменная *= выражение;` | `x*=10;` | `x = x * 10;`
`переменная /= выражение;` | `x/=y+z;` | `x = x / (y+z);`
`переменная %= выражение;` | `x%=9;` | `x = x % 9;`

##### замечание

Разница между командами `++x` и `x++` (`--x` и `x--`) проявляется тогда, когда эти команды используются как составная часть других команд. В первом случае (знаки перед именем) операция выполняется до использования переменной, а во втором — после.

    x = 5;
    y = ++x;
| После выполнения команд: `x` и `y` равны 6
    x = 5;
    y = x++;
| После выполнения команд: `x` равно 6, а `y` равно 5

Смотрите упражнения 7 и 8 в испытателе.

Испытатель alert

Дополнительный материал

Нажмите кнопку Сброс, затем приступайте к решению.

Что будет выведено на панель в результате выполнения следующих команд.

1. |
    // var x = 10;
    var x = 35;
    // var x = 8;
    alert(x);
| 10 35 8 сообщение об ошибке
2. |
    /* var x = 10;
    var x = 35;
    /* var x = 8;
    alert(x);
| 10 35 8 сообщение об ошибке
3. |
    /* var x = 10; */
    var x = 35;
    /* var x = 8;  */
    alert(x);
| 10 35 8 сообщение об ошибке
4. |
    /* var x = 10;
    var x = 35;
    var x = 8;  */
    alert(x);
| 10 35 8 сообщение об ошибке
5. |
    var x = "60";
    var y = 20;
    alert(x+y);
6. |
    var x = "60";
    var y = 20;
    alert(x-y);
7. |
    var x = "60"
    var y = 20;
    alert(x/y);
8. |
    var x = "с";
    var y = "ка";
    alert(x+"оба"+y);
9. |
    var x = 13;
    var y = 3;
    y = ++x/--y;
    alert(y);
10. |
    var x = 13;
    var y = 3;
    y = --x/++y;
    alert(y);
11. |
    var x = 13;
    var y = 3;
    y = x++%y++;
    alert(y);
12. |
    var x = "";
    x += "обед";
    alert("п"+x+"а");
13. |
    var x = "м";
    x += "а";
    x = "рам"+x;
    var y = "рог";
    alert("п"+y+x);

Чтобы увидеть результат работы, нажмите кнопку Оценка.