Модуль 8 · Урок 29

JavaScript execution, scripts і DevTools

ECMAScript визначає language semantics; browser додає host APIs на кшталт DOM, Console і timers. Надійний старт — external deferred script, strict mode, точне source location і відтворюваний error evidence, а не код у випадковому inline handler.

Language vs hostdeferStrict modeCall stack

External script і execution order

<script defer src="script.js"></script>

Classic script без async із defer завантажується паралельно з parsing і виконується після завершення document parsing, зберігаючи order між deferred scripts. Без defer parser-blocking classic script може виконатися одразу при зустрічі. async має інший order contract і тут не потрібний.

Parse, evaluate, host output

Source textTokens і grammar перевіряються до виконання.
ExecutionStatements змінюють bindings/values послідовно.
Host APIconsole надає browser, не ECMA-262.
EvidenceURL, line/column, message, stack, input.

'use strict'; на початку classic script вмикає stricter semantics, зокрема забороняє accidental implicit globals. ES modules strict automatically, але modules розглядаються у модулі 12.

Controlled debugging

  1. Відтворіть exact input і error.
  2. Відкрийте Console link до Sources та назвіть line/column.
  3. Зменште до smallest failing case.
  4. Поставте breakpoint до failure, перевірте scope/watch і call stack.
  5. Змініть одну cause, повторіть original і boundary cases.

Офіційні джерела

Практична перевірка · урок 29 з 60

Закріпіть матеріал уроку

Три сценарні питання. Для зарахування уроку потрібно дати щонайменше дві правильні відповіді.

1. Що визначає ECMAScript?
2. Що дає defer для external classic script?
3. Чому src краще за великий inline lesson code?