Условные операторы языка javaScript

В javaScript условие осуществляет оператор if

В качестве условия может использоваться логическое выражение или переменная.

Важно: Блок операторов заключенный в {} — это составной оператор, объединяющий несколько операторов в конструкции. Скобки можно опустить, если внутри конструкции только один оператор.
 

Часть конструкции после служебного слова else — необязательна.

  1. если значения имеют разные типы, то они не идентичны
  2. если значения являются числами, имеют одинаковые значения и не являются значениями NaN — они идентичны.

Важно: Идентичность (===) требует совпадения типа и значения переменной, тогда как для равенства (==) достаточно только совпадающих значений

Для оператора равенства стоит использовать символ «==»
//num1 == num2
Для оператора идентичности стоит использовать «===»
//num1 === num2

Рассмотрим простой пример с использованием оператора языка javascript if:

Пример: выводить в модальное окно «а больше 1», если переменная a>1, иначе выводить «а не больше 1»

 

var a=1;
if (a>1)
	alert("а больше 1")
else
	alert("а не больше 1");
В большинстве языков программирования также как и в javascript используется так называемое "правило лжи". Рассмотрим пример:
 
Пример: Запрашивать у пользователя возраст. В зависимости от введенного возраста выдавать сообщение "Вы слишком молоды" или "Вы нам подходите"
var a=1;
if (a)
	alert(a);

Как в данном примере поступит интерпретатор? как будет проверять условие, состоящее просто из одной переменной? - По правилу лжи:

ЛОЖНО:

  • Null значения
  • Undefined
  • NaN
  • 0
  • Пустая строка ("")
  • false

Пример со строковой переменной:

var s="";
if (s)
	alert("строка не пуста");
else
	alert("строка пуста");

Тернарный оператор javaScript

Рассмотрим синтаксис тернарного оператора на примере:

Пример: Переменной b присваивать значение 100 в случае истинности условия a>1 и присваивать 200 в случае ложного условия

 

Оператор переключения в javaScript - switch

Оператор switch javascript служит для проверки переменной на множество значений:

switch (выражение) {
case вариант1:
	//..блок операторов..
 	break
case вариант2:
	//..блок операторов..
 	break
	[default:
	//..блок операторов..]
}

Блок, начинающийся со служебного слова default можно опустить. Операторы блока будут выполнены в случае, если ни одно из перечисленных значений не подходит.

Важно: Оператор break обязателен после каждого рассмотренного значения, если его не использовать, то будут выведены все, расположенные ниже операторы

Пример:
1
2
3
4
5
6
7
8
9
10
11
12
13
var a =2;
switch(a)
{
	case 0:
	case 1:
		alert("Ноль или один");
		break;
	case 2:
	alert("Два");
		break;
	default:
		alert("Много");
}


 

Циклические операторы языка javaScript - For

В качестве начального значения счетчика итераций используется выражение присваивания: например, i=0 - счетчик цикла начинается с нуля.
 
Важно: Цикл в javascript for используется, когда заранее известно, сколько раз должны повториться циклические действия

В качестве приращения счетчика указывается шаг, с которым должен увеличиваться счетчик: например, i++ указывает на то, что каждая итерация цикла будет сопровождаться его увеличением на 1.

Условие цикла - это и есть конечное значение счетчика: например, i<10 - счетчик, достигнув значения 10, останавливает цикл.

Рассмотрим пример использования цикла for в javascript:

1
2
3
4
for (var i=0;i<10;i++)
{
	document.write(i+"<br>");
}

В примере на экран выводятся значения счетчика цикла, так как приращение счетчика i++, соответственно на экране будут появляться 0 1 2 3 ... 9, причем каждая цифра - с новой строки (тег br).


ОПЕРАТОРЫ ВЫХОДА ИЗ ЦИКЛА BREAK И CONTINUE В JAVASCRIPT. ОПЕРАТОР EXIT

Оператор break прерывает выполнение всего тела цикла, т.е. осуществляет выход из цикла в javaScript.

В то время как оператор continue прерывает выполнение текущей итерации цикла, но продолжая при этом выполнение цикла со следующий итерации.

Рассмотрим работу операторов break и continue на примере:

1
2
3
4
5
6
for (var i=0;i<10;i++)
{
	if (i==4) continue;
	document.write(i+"<br>");
	if (i==8) break;
}

В третьей строке примера стоит условие, из-за которого цифра 4 не будет выводиться на экран. В строке №5 осуществляется выход из цикла, но при этом цифра 8 будет выведена на экран, так как оператор вывода стоит до условия (в 4-й строке). Т.е. на экране будет: 0 1 2 3 5 6 7 8 - каждая цифра с новой строки.

Оператор Exit
В языке javasctipt предусмотрен оператор выхода из программного кода - оператор exit.
Чаще всего оператор используется для исключения ошибки ввода пользователя. Рассмотрим пример:

Пример: запрашивать пользователя ввести число. Если введено не число, то выводить сообщение "Необходимо число!" и останавливать работу программы

Для выполнения пригодятся функции преобразования типа:

1
2
3
4
5
6
7
8
9
var number=prompt("Введите число");
number=parseInt(number); // возвратит NaN - не число
x=isNaN(number); // возвратит true, т.к. не числовое
if (x){
	alert("Необходимо число!");
	exit; // выход из программы
}
alert("Введите второе число");// при вводе не числа оператор не выполнится
...

Интересная работа с циклом for возможна при использовании одновременно двух счетчиков в цикле. Рассмотрим пример:

Пример: При помощи скрипта распечатать следующие пары переменная - значение в три строки:
i=0 j=2; i=1 j=3; i=2 j=4


 
1
2
3
4
for(i=0,j=2;i<10,j<5;i++, j++)
{
	document.write("<br>i=", i, "j=",j);
}

Перед выполнением следующего задания рассмотрим пример динамического построения html-страницы при помощи javascript.

Пример: необходимо динамически генерировать маркированные и нумерованные списки на веб-странице в зависимости от введенных пользователем данных: запрашивать у пользователя ввести вид списка (нумерованный или маркированный), а затем количество пунктов списка. В зависимости от ответа выводить на экран теги либо маркированного либо нумерованного списка с необходимым количеством пунктов. Если введен несуществующий тип списка, то выдавать сообщение "Введите правильный тип!"и осуществлять выход из программы (оператор exit)

теги нумерованного списка:

<ol>
	<li></li>
	<li></li>
	<li></li>
</ol>

теги маркерованного списка:

<ul>
	<li></li>
	<li></li>
	<li></li>
</ul>

Например, при вводе сначала единицы, а затем числа 5, браузер отобразит:
1


 

В примере для вывода пунктов списка необходимо использовать цикл for. Также понадобятся функции преобразования типов.

 
Дополнительно:

  1. В ячейки таблицы вывести таблицу умножения, используя счетчики цикла
  2. Первый ряд и первую колонку вывести с красным фоном (атрибут ячейки таблицы bgcolor)


javascript таблица умножения и шахматная доска

Циклические операторы языка javaScript - While

Синтаксис оператора while:

while (условие) 
{
	//..блок операторов..
};
Пример: Выводить в диалоговое окно степени двойки до 1000

 

Показать решение:

На примере также посмотрим как работают операторы break и continue в цикле while:

var a = 1;
while (a<1000){
	a*=2;
	if (a==64)
		continue;
	if (a==256)
		break;
	alert(a);
}

Здесь степени двойки будут выводить до 128 включительно, причем пропущено будет 64. Т.е. в диалоговых окнах мы увидим: 2 4 8 16 32 128

Циклические операторы языка javaScript - цикл с постусловием do..while

do 
{
	//..блок операторов..
}
while (условие);
1
2
3
4
5
6
7
8
9
10
var a = 1;
do
 {
	a*=2;
	if (a==64)
		continue;
	alert(a);
	if (a==256)
		break;
}while(a<1000);

 

Циклические операторы языка javaScript - цикл For In

Цикл for in предназначен для прохода по массивам, коллекциям и объектам:

Пример: Распечатать свойства объекта navigator


 

В примере переменная prop создана для "перебора" всех свойств объекта navigator.

Оператор обработки исключений в javaScript - try..catch

В некоторых случаях код на странице не работает непонятно по какой причине. Где искать ошибку? В таких случаях можно применить оператор try..catch, который пытается выполнить фрагмент кода, и, если в коде есть ошибка, то существует возможность выдать ошибку на экран.

Рассмотрим работу оператора на примере:

Пример: написать в программе оператор с ошибкой. Проверять наличие ошибки в предполагаемом ошибочном коде: если ошибка в коде присутствует - выдавать сообщение "обработка ошибки: название ошибки". После проверки ошибочного оператора, независимо от того, есть ли в коде ошибка, выдавать сообщение "завершающие действия"


 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
alert("до");
try
{
     sdfsdf; // оператор с ошибкой
}
catch(e)
{
	alert("обработка ошибки: "+e.message);
}
finally
{
	alert("завершающие действия");
}
alert("после");

Try с англ. - "пытаться", таком образом, ставим оператор try перед фрагментом кода, который, возможно, содержит ошибку. Если ошибка действительно есть, то оператор catch (с англ. "ловить") сохраняет эту ошибку в объекте e. В дальнейшем ее можно вывести в диалоговое окно - e.message. Если ошибка все же есть, то интерпретатор после ее вывода в нашем примере перейдет на выполнение блока catch, а затем finally (с английского "завершение", "наконец"), который выполнится всегда, независимо от того была ли ошибка или нет. Даже если возникла ошибка в блоке catch.

Блок finally в конструкции необязателен.