Модуль 8 · Урок 31
Expressions, operators, equality і truthiness
Operator повертає value, а precedence визначає grouping — не обов’язково повний evaluation order. Production expression має читатися без головоломки: explicit conversion, strict equality, parentheses для intent і правильний default operator для domain.
Grouping і arithmetic
const percent = Math.round((pagesRead / pagesTotal) * 100);
const isComplete = pagesRead >= pagesTotal;
const sameTypeAndValue = pagesRead === 128;Parentheses фіксують intent. Arithmetic може виконувати numeric coercion, а + також concatenation, тому raw values конвертують раніше. Division by zero не кидає exception — результат Infinity або NaN треба валідувати.
Strict equality і references
=== не конвертує різні types: 0 === '0' false. NaN не дорівнює навіть собі, тож використовуйте Number.isNaN. Два окремі Objects з однаковим content не strict-equal; equality перевіряє identity reference.
Falsy, short-circuit і defaults
| Expression | Meaning |
|---|---|
a && b | Якщо a falsy — повернути a; інакше b |
a || b | Якщо a truthy — a; інакше b |
a ?? b | Якщо a null/undefined — b; інакше a |
Falsy: false, 0, -0, 0n, empty string, null, undefined, NaN. Якщо 0/false/empty string валідні, || помилково замінить їх; ?? збереже.
Expression trace
Для кожного case запишіть grouping, short-circuit point, predicted/actual value і coercion. Не виконуйте код до prediction.
Офіційні джерела
Закріпіть матеріал уроку
Три сценарні питання. Для зарахування уроку потрібно дати щонайменше дві правильні відповіді.