diff --git a/files/ru/learn/javascript/asynchronous/index.md b/files/ru/learn/javascript/asynchronous/index.md index 1e1906ffd394f5..128cdca19e4eb3 100644 --- a/files/ru/learn/javascript/asynchronous/index.md +++ b/files/ru/learn/javascript/asynchronous/index.md @@ -11,7 +11,8 @@ slug: Learn/JavaScript/Asynchronous Асинхронный JavaScript довольно сложная тема, и мы советуем пройти [Первые шаги в JavaScript](/ru/docs/Learn/JavaScript/First_steps) и [Блоки в JavaScript](/ru/docs/Learn/JavaScript/Building_blocks) прежде чем начать эту тему. -> **Примечание:** Если вы работаете за компьютером/планшетом/другим устройством где у вас нет возможности создавать собственные файлы, вы можете попробовать(почти все) примеры кода в одном из веб-приложений, таких, как [JSBin](https://jsbin.com/) или [Glitch](https://glitch.com). +> [!NOTE] +> Если вы работаете за компьютером/планшетом/другим устройством где у вас нет возможности создавать собственные файлы, вы можете попробовать(почти все) примеры кода в одном из веб-приложений, таких, как [JSBin](https://jsbin.com/) или [Glitch](https://glitch.com). ## Руководства diff --git a/files/ru/learn/javascript/asynchronous/introducing/index.md b/files/ru/learn/javascript/asynchronous/introducing/index.md index 5913f2b7b8f857..c14ebd48fa4110 100644 --- a/files/ru/learn/javascript/asynchronous/introducing/index.md +++ b/files/ru/learn/javascript/asynchronous/introducing/index.md @@ -46,7 +46,8 @@ btn.addEventListener("click", () => { {{EmbedLiveSample('Синхронный_JavaScript', '100%', '70px')}} -> **Примечание:** Важно помнить, что [`alert()`](/ru/docs/Web/API/Window/alert), хоть и часто используется для демонстрации синхронных блокирующих операций, сильно не рекомендован к использованию в реальных приложениях. +> [!NOTE] +> Важно помнить, что [`alert()`](/ru/docs/Web/API/Window/alert), хоть и часто используется для демонстрации синхронных блокирующих операций, сильно не рекомендован к использованию в реальных приложениях. ## Асинхронный JavaScript @@ -142,7 +143,8 @@ fetch("products.json") .catch((err) => console.error(`Fetch problem: ${err.message}`)); ``` -> **Примечание:** вы можете посмотреть законченную версию на github ([посмотрите исходный код](https://github.com/mdn/learning-area/blob/master/javascript/apis/fetching-data/can-store/can-script.js) и [запустите пример](https://mdn.github.io/learning-area/javascript/apis/fetching-data/can-store/)). +> [!NOTE] +> Вы можете посмотреть законченную версию на Github ([посмотрите исходный код](https://github.com/mdn/learning-area/blob/master/javascript/apis/fetching-data/can-store/can-script.js) и [запустите пример](https://mdn.github.io/learning-area/javascript/apis/fetching-data/can-store/)). В примере видно, как `fetch()` принимает один параметр — URL ресурса, который нужно получить из сети, — и возвращает [промис](/ru/docs/Web/JavaScript/Reference/Global_Objects/Promise). Промис — это объект, представляющий асинхронную операцию, выполненную удачно или неудачно. Он представляет собой как бы промежуточное состояние. По сути, это способ браузера сказать: "я обещаю вернуться к вам с ответом как можно скорее", поэтому в дословном переводе "промис" (promise) означает "обещание". @@ -151,7 +153,8 @@ fetch("products.json") - Два [`then()`](/ru/docs/Web/JavaScript/Reference/Global_Objects/Promise/then) блока. Оба включают в себя функцию обратного вызова, которая запустится, если предыдущая операция закончилась успешно, и каждая колбэк-функция принимает на вход результат предыдущей успешно выполненной операции, таким образом вы можете выполнять операции последовательно. Каждый `.then()` блок возвращает новый promise, это значит что вы можете объединять в цепочки блоки `.then()`, таким образом можно выполнить несколько асинхронных операций по порядку, одну за другой. - [`catch()`](/ru/docs/Web/JavaScript/Reference/Global_Objects/Promise/catch) блок описывается в конце и будет запущен если какой-либо `.then()` блок завершится с ошибкой — это аналогично синхронному [`try...catch`](/ru/docs/Web/JavaScript/Reference/Statements/try...catch), ошибка становится доступной внутри `catch()`, что может быть использовано для сообщения пользователю о типе возникшей ошибки. Однако синхронный `try...catch` не будет работать с promise, хотя будет работать с [async/await](/ru/docs/Learn/JavaScript/Asynchronous/Promises), с которыми вы познакомитесь позже. -> **Примечание:** вы узнаете намного больше о promise позже в этом модуле, так что не волнуйтесь если вы что-нибудь не поняли. +> [!NOTE] +> Вы узнаете намного больше о promise позже в этом модуле, так что не волнуйтесь если вы что-нибудь не поняли. ### Очередь событий @@ -236,7 +239,8 @@ TypeError: image is undefined; can't access its "src" property Это происходит потому, что в то же время браузер пытается запустить третий `console.log()`, блок `fetch()` ещё не закончил выполнение, поэтому переменная `image` ещё не имеет значения. -> **Примечание:** Из соображений безопасности вы не можете применять `fetch()` к файлам из вашей локальной системы (или запустить другие такие операции локально); чтобы запустить локально пример выше вам необходимо запустить его через [локальный веб-сервер](/ru/docs/Learn/Common_questions/Tools_and_setup/set_up_a_local_testing_server). +> [!NOTE] +> Из соображений безопасности вы не можете применять `fetch()` к файлам из вашей локальной системы (или запустить другие такие операции локально); чтобы запустить локально пример выше вам необходимо запустить его через [локальный веб-сервер](/ru/docs/Learn/Common_questions/Tools_and_setup/set_up_a_local_testing_server). ## Активное обучение: сделайте все это асинхронно! diff --git a/files/ru/learn/javascript/asynchronous/promises/index.md b/files/ru/learn/javascript/asynchronous/promises/index.md index d201136a22f313..357e7964bb5856 100644 --- a/files/ru/learn/javascript/asynchronous/promises/index.md +++ b/files/ru/learn/javascript/asynchronous/promises/index.md @@ -309,7 +309,8 @@ const values = await Promise.all([coffee, tea, description]); Для обработки ошибок мы добавили блок `.catch()` для функции `displayContent()`; Это позволило нам отловить ошибки в обоих функциях. -> **Примечание:** Мы также можем использовать синхронный блок [`finally`](/ru/docs/Web/JavaScript/Reference/Statements/try...catch#The_finally_clause) внутри асинхронной функции, вместо асинхронного `.finally()`, чтобы получить информацию о результате нашей операции — смотрите в действии в нашем [live example](https://mdn.github.io/learning-area/javascript/asynchronous/async-await/promise-finally-async-await.html) (смотрите [source code](https://github.com/mdn/learning-area/blob/master/javascript/asynchronous/async-await/promise-finally-async-await.html)). +> [!NOTE] +> Мы также можем использовать синхронный блок [`finally`](/ru/docs/Web/JavaScript/Reference/Statements/try...catch#The_finally_clause) внутри асинхронной функции, вместо асинхронного `.finally()`, чтобы получить информацию о результате нашей операции — смотрите в действии в нашем [live example](https://mdn.github.io/learning-area/javascript/asynchronous/async-await/promise-finally-async-await.html) (смотрите [source code](https://github.com/mdn/learning-area/blob/master/javascript/asynchronous/async-await/promise-finally-async-await.html)). ## Недостатки async/await diff --git a/files/ru/learn/javascript/building_blocks/build_your_own_function/index.md b/files/ru/learn/javascript/building_blocks/build_your_own_function/index.md index d5026fbe1d1f02..809aee2528b9f2 100644 --- a/files/ru/learn/javascript/building_blocks/build_your_own_function/index.md +++ b/files/ru/learn/javascript/building_blocks/build_your_own_function/index.md @@ -23,13 +23,15 @@ alert("This is a message"); Функция `alert` ограничена: вы можете изменить текст сообщения, но не получится изменить его стиль, например, цвет, значок или что-то ещё. Создадим сообщение, более интересное по стилю. -> **Примечание:** Этот пример будет работать во всех современных браузерах, но стиль может выглядеть немного смешным в более старых браузерах. Мы рекомендуем вам выполнять это упражнение в современном браузере, таком как Firefox, Opera или Chrome. +> [!NOTE] +> Этот пример будет работать во всех современных браузерах, но стиль может выглядеть немного смешным в более старых браузерах. Мы рекомендуем вам выполнять это упражнение в современном браузере, таком как Firefox, Opera или Chrome. ## Основная функция Для начала давайте соберём основную функцию. -> **Примечание:** Для согласований имён функций нужно следовать тем же правилам, что и [правила именования переменных](/ru/docs/Learn/JavaScript/Первые_шаги/Variables#Правила_именования_переменных). Отличить имена функций от имён переменных просто: после имён функций указываются круглые скобки, а после имён переменных их нет. +> [!NOTE] +> Для согласований имён функций нужно следовать тем же правилам, что и [правила именования переменных](/ru/docs/Learn/JavaScript/Первые_шаги/Variables#Правила_именования_переменных). Отличить имена функций от имён переменных просто: после имён функций указываются круглые скобки, а после имён переменных их нет. 1. Откройте файл [function-start.html](https://github.com/mdn/learning-area/blob/master/javascript/building-blocks/functions/function-start.html) и скопируйте его себе на компьютер. Код HTML в нем предельно прост: body содержит только одну кнопку. Также здесь представлен базовый CSS для создания настраиваемого окна сообщений и пустой элемент {{htmlelement ("script")}} для размещения нашего JavaScript. 2. Затем добавьте строку внутри элемента `