JavaScript выполняется от начала до конца?

Код (например, функции) выполняются одновременно, или он выполняет приказ, в котором он был записан (от начала до конца)? Я знаю, что порядок имеет значение в HTML, что относительно JavaScript?

Например, если будет два вызова функции один за другим, то они будут выполняться одновременно или один за другим даже если они будут не иметь никакого отношения друг к другу?

7
задан 4 revs, 3 users 60% 1 October 2016 в 16:06
поделиться

2 ответа

Может показаться, что функции Javascript выполняются в непредсказуемом порядке, поскольку модель для Javascript в браузере событийно-ориентированный. Это означает, что программа Javascript обычно присоединяет обработчики событий к элементам DOM, и они запускаются действиями пользователя, такими как щелчок или перемещение указателя над элементом. Однако сценарий, который настраивает обработчики событий, работает как традиционная структурированная императивная программа.

Еще одна сложность заключается в том, что современные приложения Javascript широко используют асинхронные функции. Это означает, что вызов функции может вернуться быстро, но запустит действие, которое завершится позже. Очевидный пример - отправка запросов на сервер в так называемых приложениях AJAX. Обычно функции запроса передается функция обратного вызова, которая вызывается после завершения запроса. Однако программа Javascript перейдет к следующему оператору, не дожидаясь завершения запроса. Это может сбивать с толку, если вы недостаточно четко думаете о том, что на самом деле делает ваша программа.

Другой пример, с которым вы иногда можете столкнуться, - запуск анимации в jQuery. Они тоже работают асинхронно, и вы можете передать функцию обратного вызова, которая запускается после завершения анимации. Опять же, иногда это может вызывать удивление, если вы ожидаете, что следующий оператор будет выполнен после завершения анимации, а не после ее начала.

8
ответ дан 7 December 2019 в 03:16
поделиться

Это происходит в том порядке, в котором оно было написано (с различными исключениями). В частности, это императивный структурированный объектно-ориентированный язык сценариев на основе прототипов :)

См. Императивное программирование

1
ответ дан 7 December 2019 в 03:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: