diff --git a/1-js/2-first-steps/11-uibasic/article.md b/1-js/2-first-steps/11-uibasic/article.md
index 357967e6..02c9772e 100644
--- a/1-js/2-first-steps/11-uibasic/article.md
+++ b/1-js/2-first-steps/11-uibasic/article.md
@@ -51,7 +51,7 @@ alert('Вам ' + years + ' лет!')
```
[warn header="Всегда указывайте `default`"]
-Вообще, второй `default` может отсутствовать. Однако при этом IE вставит в диалог значение по умолчанию `"undefined"`.
+Второй параметр может отсутствовать. Однако при этом IE вставит в диалог значение по умолчанию `"undefined"`.
Запустите этот код в IE, чтобы понять о чем речь:
diff --git a/1-js/2-first-steps/13-logical-ops/5-alert-and-or/solution.md b/1-js/2-first-steps/13-logical-ops/5-alert-and-or/solution.md
new file mode 100644
index 00000000..e02d8e49
--- /dev/null
+++ b/1-js/2-first-steps/13-logical-ops/5-alert-and-or/solution.md
@@ -0,0 +1,16 @@
+Ответ: `3`.
+
+```js
+//+ run
+alert( null || 2 && 3 || 4 );
+```
+
+Приоритет оператора `&&` выше, чем `||`, поэтому он выполнится первым.
+
+Последовательность вычислений:
+```
+null || 2 && 3 || 4
+null || 3 || 4
+3
+```
+
diff --git a/1-js/2-first-steps/13-logical-ops/5-alert-and-or/task.md b/1-js/2-first-steps/13-logical-ops/5-alert-and-or/task.md
new file mode 100644
index 00000000..9e367c3b
--- /dev/null
+++ b/1-js/2-first-steps/13-logical-ops/5-alert-and-or/task.md
@@ -0,0 +1,10 @@
+# Что выведет этот код?
+
+[importance 5]
+
+Что выведет код ниже?
+
+```js
+alert( null || 2 && 3 || 4 );
+```
+
diff --git a/1-js/2-first-steps/13-logical-ops/5-check-if-in-range/solution.md b/1-js/2-first-steps/13-logical-ops/6-check-if-in-range/solution.md
similarity index 100%
rename from 1-js/2-first-steps/13-logical-ops/5-check-if-in-range/solution.md
rename to 1-js/2-first-steps/13-logical-ops/6-check-if-in-range/solution.md
diff --git a/1-js/2-first-steps/13-logical-ops/5-check-if-in-range/task.md b/1-js/2-first-steps/13-logical-ops/6-check-if-in-range/task.md
similarity index 100%
rename from 1-js/2-first-steps/13-logical-ops/5-check-if-in-range/task.md
rename to 1-js/2-first-steps/13-logical-ops/6-check-if-in-range/task.md
diff --git a/1-js/2-first-steps/13-logical-ops/6-check-if-out-range/solution.md b/1-js/2-first-steps/13-logical-ops/7-check-if-out-range/solution.md
similarity index 100%
rename from 1-js/2-first-steps/13-logical-ops/6-check-if-out-range/solution.md
rename to 1-js/2-first-steps/13-logical-ops/7-check-if-out-range/solution.md
diff --git a/1-js/2-first-steps/13-logical-ops/6-check-if-out-range/task.md b/1-js/2-first-steps/13-logical-ops/7-check-if-out-range/task.md
similarity index 100%
rename from 1-js/2-first-steps/13-logical-ops/6-check-if-out-range/task.md
rename to 1-js/2-first-steps/13-logical-ops/7-check-if-out-range/task.md
diff --git a/1-js/2-first-steps/13-logical-ops/7-if-question/solution.md b/1-js/2-first-steps/13-logical-ops/8-if-question/solution.md
similarity index 100%
rename from 1-js/2-first-steps/13-logical-ops/7-if-question/solution.md
rename to 1-js/2-first-steps/13-logical-ops/8-if-question/solution.md
diff --git a/1-js/2-first-steps/13-logical-ops/7-if-question/task.md b/1-js/2-first-steps/13-logical-ops/8-if-question/task.md
similarity index 100%
rename from 1-js/2-first-steps/13-logical-ops/7-if-question/task.md
rename to 1-js/2-first-steps/13-logical-ops/8-if-question/task.md
diff --git a/1-js/2-first-steps/13-logical-ops/article.md b/1-js/2-first-steps/13-logical-ops/article.md
index 27c01996..bbbcd44a 100644
--- a/1-js/2-first-steps/13-logical-ops/article.md
+++ b/1-js/2-first-steps/13-logical-ops/article.md
@@ -61,6 +61,7 @@ if (hour < 10 || hour > 18 || isWeekend) {
## Короткий цикл вычислений
+
JavaScript вычисляет несколько ИЛИ слева направо. При этом, чтобы экономить ресурсы, используется так называемый *"короткий цикл вычисления"*.
Допустим, вычисляются несколько ИЛИ подряд: `a || b || c || ...`. Если первый аргумент -- `true`, то результат заведомо будет `true` (хотя бы одно из значений -- `true`), и остальные значения игнорируются.
@@ -91,6 +92,11 @@ alert(x); // 1
## Значение ИЛИ
+[quote author="Илья Канатов, участник курса JavaScript"]
+`||` запинается на "правде",
+`&&` запинается на "лжи".
+[/quote]
+
Итак, как мы видим, оператор ИЛИ вычисляет ровно столько значений, сколько необходимо -- до первого `true`.
При этом оператор ИЛИ возвращает то значение, на котором остановились вычисления. Причём, не преобразованное к логическому типу.
@@ -129,9 +135,9 @@ alert( result ); // выведет "Привет!" - первое значени
alert( undefined || '' || false || 0 ); // 0
```
-[summary]
Итак, оператор `||` вычисляет операнды слева направо до первого "истинного" и возвращает его, а если все ложные -- то последнее значение.
-[/summary]
+
+Иначе можно сказать, что "`||` запинается на правде".
## && (И)
@@ -201,9 +207,9 @@ alert( 1 && 2 && null && 3 ); // null
alert( 1 && 2 && 3 ); // 3
```
-[summary]
Итак, оператор `&&` вычисляет операнды слева направо до первого "ложного" и возвращает его, а если все истинные -- то последнее значение.
-[/summary]
+
+Иначе можно сказать, что "`&&` запинается на лжи".
[smart header="Приоритет у `&&` больше, чем у `||`"]
Приоритет оператора И `&&` больше, чем ИЛИ `||`, так что он выполняется раньше.
@@ -262,15 +268,15 @@ var result = !value;
```js
//+ run
-alert(!true) // false
-alert(!0) // true
+alert( !true ); // false
+alert( !0 ); // true
```
**В частности, двойное НЕ используются для преобразования значений к логическому типу:**
```js
//+ run
-alert(!!"строка") // true
-alert(!!null) // false
+alert( !!"строка" ); // true
+alert( !!null ); // false
```
diff --git a/1-js/2-first-steps/14-types-conversion/1-primitive-conversions-questions/solution.md b/1-js/2-first-steps/14-types-conversion/1-primitive-conversions-questions/solution.md
index 8367d6cf..7441a37f 100644
--- a/1-js/2-first-steps/14-types-conversion/1-primitive-conversions-questions/solution.md
+++ b/1-js/2-first-steps/14-types-conversion/1-primitive-conversions-questions/solution.md
@@ -16,6 +16,8 @@ true + false = 1
0 || 5 = 5
null + 1 = 1 // (3)
undefined + 1 = NaN // (4)
+null == "\n0\n" = false // (5)
++null == +"\n0\n" = true // (6)
```
... | ... | ... |
4 | унарный плюс | `+` |
4 | унарный минус | `-` |
5 | умножение | `*` |
5 | деление | `/` |
6 | сложение | `+` |
6 | вычитание | `-` |
15 | унарный плюс | `+` |
15 | унарный минус | `-` |
14 | умножение | `*` |
14 | деление | `/` |
13 | сложение | `+` |
13 | вычитание | `-` |
... | ... | ... |
3 | присвоение | `=` |
... | ... | ... |