JS Basics - Loops & if ... else & switch Flashcards

1
Q

Цикл “while”

A

Проверяет условие перед каждой итерацией.

let i = 0;
while (i < 3) { // выводит 0, затем 1, затем 2
alert( i );
i++;
}

Условие while вычисляется и преобразуется в логическое значение.

Фигурные скобки не требуются для тела цикла из одной строки.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Итерация

A

Одно выполнение тела цикла.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Цикл “do … while”

A

Цикл сначала выполнит тело, а затем проверит условие condition, и пока его значение равно true, он будет выполняться снова и снова.

let i = 0;
do {
alert( i );
i++;
} while (i < 3);

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Цикл “for”

A

for (let i = 0; i < 3; i++) { // выведет 0, затем 1, затем 2
alert(i);
}

  • Начало let i = 0
    Выполняется один раз при входе в цикл
  • Условие i < 3
    Проверяется перед каждой итерацией цикла. Если оно вычислится в false, цикл остановится.
  • Тело alert(i)
    Выполняется снова и снова, пока условие вычисляется в true.
  • Шаг i++
    Выполняется после тела цикла на каждой итерации перед проверкой условия.

Любая часть for может быть пропущена.
Даже все:
for (;;) {
// будет выполняться вечно
}

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

«Встроенное» объявление переменной

A

Когда переменная объявляется прямо в цикле, такие переменные существуют только внутри цикла.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Прерывание цикла: «break»

A

Мы можем выйти из цикла в любой момент с помощью специальной директивы break.

Сочетание «бесконечный цикл + break» – отличная штука для тех ситуаций, когда условие, по которому нужно прерваться, находится не в начале или конце цикла, а посередине или даже в нескольких местах его тела.

Нельзя использовать справа от оператора „?“.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Директива continue

A

«Облегчённая версия» break. При её выполнении цикл не прерывается, а переходит к следующей итерации (если условие все ещё равно true).

Её используют, если понятно, что на текущем повторе цикла делать больше нечего.

Директива continue позволяет избегать вложенности.

Нельзя использовать справа от оператора „?“.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Цикл “for … in”

A

Используется для перебора всех свойств объекта.

for (key in object) {
// тело цикла выполняется для каждого свойства объекта
}

Можно объявлять переменную внутри цикла.

Упорядочение свойств объекта: свойства с целочисленными ключами сортируются по возрастанию, остальные располагаются в порядке создания.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

«Целочисленное свойство» объекта

A

Строка, которая может быть преобразована в целое число и обратно без изменений.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Цикл “for … of”

A

Способ перебора элементов массива.

let fruits = [“Яблоко”, “Апельсин”, “Слива”];

for (let fruit of fruits) {
alert( fruit );
}

Цикл for..of не предоставляет доступа к номеру текущего элемента, только к его значению.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Инструкция if(…)

A

Вычисляет условие в скобках и, если результат true, то выполняет блок кода.

Если мы хотим выполнить более одной инструкции, то нужно заключить блок кода в фигурные скобки.

Инструкция if (…) вычисляет выражение в скобках и преобразует результат к логическому типу.
Таким образом, код при таком условии никогда не выполнится:
if (0) { // 0 is falsy

}
…а при таком – выполнится всегда:
if (1) { // 1 is truthy

}

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Блок «else»

A

Инструкция if может содержать необязательный блок «else» («иначе»). Он выполняется, когда условие ложно.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

«else if»

A

Если нужно проверить несколько вариантов условия используется блок else if. Присутствие блока else в таком случае не является обязательным.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Тернарный оператор “?”

A

let result = условие ? значение1 : значение2;

Условие можно писать как в скобках, так и без, т.к. оператор “?” имеет низкий приоритет.

Последовательность операторов вопросительного знака ? позволяет вернуть значение, которое зависит от более чем одного условия.

let age = prompt(‘Возраст?’, 18);

let message = (age < 3) ? ‘Здравствуй, малыш!’ :
(age < 18) ? ‘Привет!’ :
(age < 100) ? ‘Здравствуйте!’ :
‘Какой необычный возраст!’;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Конструкция “switch”

A

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

Имеет один или более блок case и необязательный блок default.

let a = 2 + 2;

switch (a) {
case 3:
alert( ‘Маловато’ );
break;
case 4:
alert( ‘В точку!’ ); // сработавший case
break;
case 5:
alert( ‘Перебор’ );
break;
default:
alert( “Нет таких значений” );
}

Обязательно ставить break, если break нет, то выполнение пойдёт ниже по следующим case, при этом остальные проверки игнорируются.

И switch и case допускают любое выражение в качестве аргумента.

Несколько вариантов case, использующих один код, можно группировать, break в таком случае ставится только в конце общего кодового блока.

Проверка на равенство всегда строгая. Значения должны быть одного типа, чтобы выполнялось равенство.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Виды циклов

A
  1. While()…
  2. Do… while()
  3. For()
  4. For(… of …)
  5. For(… in …)