Тема: Основные операторы в 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
Материалы на данной страницы взяты из открытых источников либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.