Тема: Основные операторы в JavaScript.
План занятия:
1. Операторы сравнения и логического значения. Побитовые операторы.
2. Взаимодействие с пользователем: alert, prompt, confirm.Переменные
3. Условные операторы
Цель занятия: Изучить основные операторы JavaScript.
Операнд – то, к чему применяется оператор.
Например: 5 * 2
– оператор умножения с левым и правым
операндами. Другое название: «аргумент оператора».
Унарным называется оператор, который
применяется к одному операнду. Например, оператор унарный минус "-"
меняет
знак числа на противоположный:
varx
=1;
x
=-
x
;
alert(x
);// -1, применили унарный минус
Бинарным называется оператор, который применяется к двум операндам. Тот же минус существует и в бинарной форме:
varx
=1,
y
=3;
alert(y
-x
);// 2, бинарный минус
Обычно при помощи
плюса '+'
складывают числа.
Но если бинарный
оператор '+'
применить к строкам, то он их
объединяет в одну:
vara
="моя"
+
"строка";
alert(a
);// моястрока
Например:
alert('1'
+
2
);
// "12"
alert(2
+
'1'
);
// "21"
alert(2
-
'1'
);
// 1
alert(6
/
'2'
);
// 3
В том случае, если в выражении есть несколько операторов – порядок их выполнения определяется приоритетом.
Из школы мы знаем,
что умножение в выражении 2 * 2 + 1
выполнится раньше сложения, т.к. его приоритет выше, а
скобки явно задают порядок выполнения. Но в JavaScript – гораздо больше
операторов, поэтому существует целая таблица
приоритетов.
Она содержит как уже пройденные операторы, так и те, которые мы еще не проходили. В ней каждому оператору задан числовой приоритет. Тот, у кого число больше – выполнится раньше. Если приоритет одинаковый, то порядок выполнения – слева направо.
Когда
переменную чему-либо присваивают, например, x = 2 * 2 + 1
сначала выполнится арифметика, а уже
затем – произойдёт присваивание =
.
varx
=2
*
2
+
1;
alert(x
);// 5
Оператор взятия
остатка %
интересен тем, что, несмотря на
обозначение, никакого отношения к процентам не имеет.
Его результат a % b
– это остаток от деления a
на b
.
Например:
alert(5
%
2
);
// 1, остаток от деления 5 на 2
alert(8
%
3
);
// 2, остаток от деления 8 на 3
alert(6
%
3
);
// 0, остаток от деления 6 на 3
++
, --
Одной из наиболее частых операций в JavaScript, как и во многих других языках программирования, является увеличение или уменьшение переменной на единицу.
Для этого существуют даже специальные операторы:
·
Инкремент ++
увеличивает на 1:
·
vari
=2;
·
i
++;// более короткая запись для i = i + 1.
alert(i
);// 3
·
Декремент --
уменьшает на 1:
·
vari
=2;
·
i
--;// более короткая запись для i = i - 1.
alert(i
);// 1
Важно:
Инкремент/декремент
можно применить только к переменной. Код 5++
даст ошибку.
Вызывать эти
операторы можно не только после, но и перед переменной: i++
(называется «постфиксная форма») или++i
(«префиксная форма»).
Побитовые операторы рассматривают аргументы как 32-разрядные целые числа и работают на уровне их внутреннего двоичного представления.
Эти операторы не являются чем-то специфичным для JavaScript, они поддерживаются в большинстве языков программирования.
Поддерживаются следующие побитовые операторы:
·
AND(и) ( &
)
·
OR(или) ( |
)
·
XOR(побитовое исключающее или) ( ^
)
·
NOT(не) ( ~
)
·
LEFT SHIFT(левый сдвиг) ( <<
)
·
RIGHT SHIFT(правый сдвиг) ( >>
)
·
ZERO-FILL RIGHT SHIFT(правый сдвиг с заполнением нулями) ( >>>
)
Они используются редко, поэтому вынесены в отдельную главу Побитовые операторы.
Часто нужно применить оператор к переменной и сохранить результат в ней же, например:
varn
=2;
n
=n
+5;
n
=n
*2;
Эту запись можно укоротить при помощи совмещённых операторов, вот так:
varn
=2;
n
+=5;
// теперь n=7 (работает как n = n + 5)
n
*=2;
// теперь n=14 (работает как n = n * 2)
alert(n
);// 14
В этом разделе мы познакомимся с операторами сравнения и с логическими значениями, которые такие операторы возвращают.
Многие операторы сравнения знакомы нам из математики:
·
Больше/меньше: a > b
, a < b
.
·
Больше/меньше или равно: a >= b
, a <= b
.
·
Равно a == b
.
Для сравнения используется два символа равенства '='
. Один символ a = b
означал бы присваивание.
·
«Не равно». В математике он пишется как ≠
, в JavaScript – знак
равенства с восклицательным знаком перед ним!=
.
Сравнение возвращает значение. Это значение имеет логический тип.
Существует всего два логических значения:
·
true
–
имеет смысл «да», «верно», «истина».
·
false
–
означает «нет», «неверно», «ложь».
Например:
alert(2
>
1
);
// true, верно
alert(2
==
1
);
// false, неверно
alert(2
!=
1
);
// true
Строки сравниваются побуквенно:
При сравнении значений разных типов, используется числовое преобразование. Оно применяется к обоим значениям.
Например:
alert('2'
>
1
);
// true, сравнивается как 2 > 1
alert('01'
==
1
);
// true, сравнивается как 1 == 1
alert(false
==
0
);
// true, false становится числом 0
alert(true
==
1
);
// true, так как true становится числом 1.
В обычном
операторе ==
есть «проблема» – он не может отличить 0
от false
:
alert(0
==
false
);
// true
Та же ситуация с пустой строкой:
alert(''
==
false
);
// true
Для
проверки равенства без преобразования типов используются операторы строгого
равенства ===
(тройное
равно) и !==
.
Если тип разный,
то они всегда возвращают false
:
alert(0
===
false
);
// false, т.к. типы различны
Строгое сравнение предпочтительно, если мы хотим быть уверены, что «сюрпризов» не будет.
Несравнимый undefined
Значение undefined
вообще нельзя сравнивать.
Синтаксис:
alert(сообщение
)
alert
выводит на экран окно с сообщением и
приостанавливает выполнение скрипта, пока пользователь не нажмёт «ОК».
alert("Привет"
);
Функция prompt принимает два аргумента:
result
=prompt(
title
,default);
Она выводит
модальное окно с заголовком title
, полем для ввода
текста, заполненным строкой по умолчанию default
и
кнопками OK/CANCEL.
Пользователь должен либо что-то ввести и нажать OK, либо отменить ввод кликом на CANCEL или нажатием Esc на клавиатуре.
Вызов prompt
возвращает то, что ввёл
посетитель – строку или специальное значение null
, если
ввод отменён.
Синтаксис:
result
=confirm(
question
);
confirm
выводит окно с вопросом question
с
двумя кнопками: OK и CANCEL.
Результатом
будет true
при нажатии OK и false
– при CANCEL(Esc).
Например:
varisAdmin
=confirm("Вы - администратор?");
alert( isAdmin
);
Условные операторы: if, '?'
Иногда, в зависимости от условия, нужно выполнить различные действия. Для этого используется оператор if.
Оператор if
Например:
var year = prompt('В каком году появилась спецификация ECMA-262 5.1?', '');
if (year != 2011) alert( 'А вот и неправильно!' );
Неверное условие, else
Необязательный блок else («иначе») выполняется, если условие неверно:
var year = prompt('Введите год появления стандарта ECMA-262 5.1', '');
if (year == 2011) {
alert( 'Да вы знаток!' );
} else {
alert( 'А вот и неправильно!' ); // любое значение, кроме 2011
}
Несколько условий, else if
Бывает нужно проверить несколько вариантов условия. Для этого используется блок else if .... Например:
var year = prompt('В каком году появилась спецификация ECMA-262 5.1?', '');
if (year < 2011) {
alert( 'Это слишком рано..' );
} else if (year > 2011) {
alert( 'Это поздновато..' );
} else {
alert( 'Да, точно в этом году!' );
}
В примере выше JavaScript сначала проверит первое условие, если оно ложно – перейдет ко второму – и так далее, до последнего else.
Оператор вопросительный знак „?“
Иногда нужно в зависимости от условия присвоить переменную. Например:
var access;
var age = prompt('Сколько вам лет?', '');
if (age > 14) {
access = true;
} else {
access = false;
}
alert(access);
Оператор вопросительный знак '?' позволяет делать это короче и проще.
Он состоит из трех частей:
условие ? значение1 : значение2
Проверяется условие, затем если оно верно – возвращается значение1, если неверно – значение2, например:
access = (age > 14) ? true : false;
Оператор '?' выполняется позже большинства других, в частности – позже сравнений, поэтому скобки можно не ставить:
access = age > 14 ? true : false;
Скачано с www.znanio.ru
Материалы на данной страницы взяты из открытых источников либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.