diff --git a/docs/javascript/01-base/01-strict.md b/docs/javascript/01-base/01-strict.md index 5d74376..1391bc2 100644 --- a/docs/javascript/01-base/01-strict.md +++ b/docs/javascript/01-base/01-strict.md @@ -10,4 +10,6 @@ sidebar_position: 1 Нет никакого способа отменить use strict Use strict по умолчанию выключен в консоли браузера -Современный JavaScript поддерживает «классы» и «модули» — продвинутые структуры языка (и мы, конечно, до них доберёмся), которые автоматически включают строгий режим. \ No newline at end of file +Современный JavaScript поддерживает «классы» и «модули» — продвинутые структуры языка (и мы, конечно, до них доберёмся), которые автоматически включают строгий режим. + +🚀 **Источник: [https://learn.javascript.ru/strict-mode](https://learn.javascript.ru/strict-mode)** \ No newline at end of file diff --git a/docs/javascript/01-base/02-variables.md b/docs/javascript/01-base/02-variables.md index ad9ec2b..998cd30 100644 --- a/docs/javascript/01-base/02-variables.md +++ b/docs/javascript/01-base/02-variables.md @@ -92,4 +92,6 @@ typeof function(){} == "function" // именно для функций +function() { alert("Выражение начинается с унарного плюса"); }(); -``` \ No newline at end of file +``` + +🚀 **Источник: [https://learn.javascript.ru/variables](https://learn.javascript.ru/variables)** \ No newline at end of file diff --git a/docs/javascript/01-base/03-type-conversion.md b/docs/javascript/01-base/03-type-conversion.md index 4af9ca2..a810279 100644 --- a/docs/javascript/01-base/03-type-conversion.md +++ b/docs/javascript/01-base/03-type-conversion.md @@ -52,4 +52,6 @@ alert( Boolean(1) ); // true alert( Boolean(0) ); // false alert( Boolean("Привет!") ); // true alert( Boolean("") ); // false -``` \ No newline at end of file +``` + +🚀 **Источник: [https://learn.javascript.ru/types](https://learn.javascript.ru/types)** \ No newline at end of file diff --git a/docs/javascript/01-base/04-operators.md b/docs/javascript/01-base/04-operators.md index 19590eb..04d21bc 100644 --- a/docs/javascript/01-base/04-operators.md +++ b/docs/javascript/01-base/04-operators.md @@ -36,4 +36,6 @@ sidebar_position: 4 let a = (1 + 2, 3 + 4); alert( a ); // 7 (результат вычисления 3 + 4) ``` -❗ ***Запятая имеет очень низкий приоритет*** \ No newline at end of file +❗ ***Запятая имеет очень низкий приоритет*** + +🚀 **Источник: [https://learn.javascript.ru/operators](https://learn.javascript.ru/operators)** \ No newline at end of file diff --git a/docs/javascript/01-base/05-compare-ops.md b/docs/javascript/01-base/05-compare-ops.md index e8c3ab8..922885e 100644 --- a/docs/javascript/01-base/05-compare-ops.md +++ b/docs/javascript/01-base/05-compare-ops.md @@ -41,3 +41,4 @@ sidebar_position: 5 При использовании математических операторов и других операторов сравнения \< \> \<= \>= Значения null/undefined преобразуются к числам: `null` становится 0, а `undefined` – NaN. +🚀 **Источник: [https://learn.javascript.ru/comparison](https://learn.javascript.ru/comparison)** \ No newline at end of file diff --git a/docs/javascript/01-base/06-conditions-logic.md b/docs/javascript/01-base/06-conditions-logic.md index 3618121..0e7726d 100644 --- a/docs/javascript/01-base/06-conditions-logic.md +++ b/docs/javascript/01-base/06-conditions-logic.md @@ -176,4 +176,8 @@ x ??= y let userAge = null; userAge ??= 18; alert(userAge) // 18 -``` \ No newline at end of file +``` + +🚀 **Источник if-else: [https://learn.javascript.ru/ifelse](https://learn.javascript.ru/ifelse)** +🚀 **Источник logical ops: [https://learn.javascript.ru/logical-operators](https://learn.javascript.ru/logical-operators)** +🚀 **Источник nullish ops: [https://learn.javascript.ru/nullish-operators](https://learn.javascript.ru/nullish-operators)** \ No newline at end of file diff --git a/docs/javascript/01-base/07-cycles.md b/docs/javascript/01-base/07-cycles.md index d4fd8bc..78daeb3 100644 --- a/docs/javascript/01-base/07-cycles.md +++ b/docs/javascript/01-base/07-cycles.md @@ -37,4 +37,6 @@ for (let i = 0; i < 3; i++) { Обратите внимание, что эти синтаксические конструкции не являются выражениями и не могут быть использованы с тернарным оператором ?. В частности, использование таких директив, как **break/continue**, вызовет ошибку. ```js (i > 5) ? alert(i) : continue; // continue здесь приведёт к ошибке -``` \ No newline at end of file +``` + +🚀 **Источник: [https://learn.javascript.ru/while-for](https://learn.javascript.ru/while-for)** \ No newline at end of file diff --git a/docs/javascript/01-base/08-garbage-collector.md b/docs/javascript/01-base/08-garbage-collector.md index a45fb51..319dc2d 100644 --- a/docs/javascript/01-base/08-garbage-collector.md +++ b/docs/javascript/01-base/08-garbage-collector.md @@ -2,7 +2,6 @@ sidebar_position: 8 --- - # Сборка мусора Управление памятью в JavaScript выполняется автоматически и незаметно. Мы создаём примитивы, объекты, функции… Всё это занимает память. @@ -50,4 +49,6 @@ sidebar_position: 8 ### Главное, что нужно знать: - Сборка мусора выполняется автоматически. Мы не можем ускорить или предотвратить её. - Объекты сохраняются в памяти, пока они достижимы. -- Если на объект есть ссылка – вовсе не факт, что он является достижимым (из корня): набор взаимосвязанных объектов может стать недоступен в целом. \ No newline at end of file +- Если на объект есть ссылка – вовсе не факт, что он является достижимым (из корня): набор взаимосвязанных объектов может стать недоступен в целом. + +🚀 **Источник: [https://learn.javascript.ru/garbage-collection](https://learn.javascript.ru/garbage-collection)** \ No newline at end of file diff --git a/docs/javascript/02-objects/01-intro.md b/docs/javascript/02-objects/01-intro.md index bb47db7..04369ed 100644 --- a/docs/javascript/02-objects/01-intro.md +++ b/docs/javascript/02-objects/01-intro.md @@ -6,17 +6,14 @@ sidebar_position: 1 Объекты – это ассоциативные массивы с рядом дополнительных возможностей. Они хранят свойства (пары ключ-значение), где: - - Ключи свойств должны быть строками или символами (обычно строками). - Значения могут быть любого типа. Чтобы получить доступ к свойству, мы можем использовать: - - Запись через точку: obj.property. - Квадратные скобки obj["property"]. Квадратные скобки позволяют взять ключ из переменной, например, obj[varWithKey]. Дополнительные операторы: - - Удаление свойства: delete obj.prop. - Проверка существования свойства: "key" in obj. - Перебор свойств объекта: цикл for for (let key in obj). @@ -118,3 +115,5 @@ for (let key in user) { ``` ### Упорядочение свойств объекта Cвойства упорядочены особым образом: свойства с целочисленными ключами сортируются по возрастанию, остальные располагаются в порядке создания. + +🚀 **Источник: [https://learn.javascript.ru/object](https://learn.javascript.ru/object)** \ No newline at end of file diff --git a/docs/javascript/02-objects/02-copying-objects.md b/docs/javascript/02-objects/02-copying-objects.md index 319f84c..b7549ca 100644 --- a/docs/javascript/02-objects/02-copying-objects.md +++ b/docs/javascript/02-objects/02-copying-objects.md @@ -74,3 +74,5 @@ let clone = JSON.parse(JSON.stringify(obj)) #### Метод structuredClone (deep) Мы можем использовать глобальный метод ***structuredClone()***, который позволяет сделать полную копию объекта. К сожалению он поддерживается только современными браузерами. + +🚀 **Источник: [https://learn.javascript.ru/object-copy](https://learn.javascript.ru/object-copy)** \ No newline at end of file diff --git a/docs/javascript/02-objects/03-methods-this.md b/docs/javascript/02-objects/03-methods-this.md index 72fe70f..3bc62a5 100644 --- a/docs/javascript/02-objects/03-methods-this.md +++ b/docs/javascript/02-objects/03-methods-this.md @@ -37,4 +37,6 @@ let user = { 1. Методы могут ссылаться на объект через `this`. 2. Значение `this` определяется во время исполнения кода. - При объявлении любой функции в ней можно использовать `this`, но этот `this` не имеет значения до тех пор, пока функция не будет вызвана. - - Когда функция вызывается синтаксисом «метода» – ***object.method()***, значением `this` во время вызова является `object`. \ No newline at end of file + - Когда функция вызывается синтаксисом «метода» – ***object.method()***, значением `this` во время вызова является `object`. + +🚀 **Источник: [https://learn.javascript.ru/object-methods](https://learn.javascript.ru/object-methods)** \ No newline at end of file diff --git a/docs/javascript/02-objects/04-constructor-new-op.md b/docs/javascript/02-objects/04-constructor-new-op.md index b005530..080958e 100644 --- a/docs/javascript/02-objects/04-constructor-new-op.md +++ b/docs/javascript/02-objects/04-constructor-new-op.md @@ -31,4 +31,6 @@ function User(name) { ``` Итого: - Функции-конструкторы или просто конструкторы, являются обычными функциями, но существует общепринятое соглашение именовать их с заглавной буквы. -- Функции-конструкторы следует вызывать только с помощью `new`. Такой вызов подразумевает создание пустого `this` в начале и возврат заполненного в конце. \ No newline at end of file +- Функции-конструкторы следует вызывать только с помощью `new`. Такой вызов подразумевает создание пустого `this` в начале и возврат заполненного в конце. + +🚀 **Источник: [https://learn.javascript.ru/constructor-new](https://learn.javascript.ru/constructor-new)** \ No newline at end of file diff --git a/docs/javascript/02-objects/05-option-chaining.md b/docs/javascript/02-objects/05-option-chaining.md index 3ab6199..ec23c1f 100644 --- a/docs/javascript/02-objects/05-option-chaining.md +++ b/docs/javascript/02-objects/05-option-chaining.md @@ -33,4 +33,6 @@ user?.name = "John"; // Ошибка, не работает Как мы видим, все они просты и понятны в использовании. ?. проверяет левую часть на `null/undefined` и позволяет продолжить вычисление, если это не так. -Цепочка ?. позволяет безопасно получать доступ к вложенным свойствам. \ No newline at end of file +Цепочка ?. позволяет безопасно получать доступ к вложенным свойствам. + +🚀 **Источник: [https://learn.javascript.ru/optional-chaining](https://learn.javascript.ru/optional-chaining)** \ No newline at end of file diff --git a/docs/javascript/02-objects/06-symbol.md b/docs/javascript/02-objects/06-symbol.md index 1ec0400..8b14f58 100644 --- a/docs/javascript/02-objects/06-symbol.md +++ b/docs/javascript/02-objects/06-symbol.md @@ -41,4 +41,6 @@ alert(id1 == id2); // false 2. Существует множество системных символов, используемых внутри JavaScript, доступных как Symbol.*. Мы можем использовать их, чтобы изменять встроенное поведение ряда объектов. Например, в дальнейших главах мы будем использовать Symbol.iterator для итераторов, Symbol.toPrimitive для настройки преобразования объектов в примитивы и - так далее. \ No newline at end of file + так далее. + +🚀 **Источник: [https://learn.javascript.ru/symbol](https://learn.javascript.ru/symbol)** \ No newline at end of file diff --git a/docs/javascript/02-objects/07-objects-to-primitives.md b/docs/javascript/02-objects/07-objects-to-primitives.md index e174d0e..41e6aef 100644 --- a/docs/javascript/02-objects/07-objects-to-primitives.md +++ b/docs/javascript/02-objects/07-objects-to-primitives.md @@ -7,7 +7,6 @@ sidebar_position: 7 Преобразование объекта в примитив вызывается автоматически многими встроенными функциями и операторами, которые ожидают примитив в качестве значения. Существует всего 3 типа (хинта) для этого: - - "string" (для alert и других операций, которым нужна строка) - "number" (для математических операций) - "default" (для некоторых других операторов, обычно объекты реализуют его как "number") @@ -15,7 +14,6 @@ sidebar_position: 7 Спецификация явно описывает для каждого оператора, какой ему следует использовать хинт. Алгоритм преобразования таков: - 1. Сначала вызывается метод `obj[Symbol.toPrimitive](hint)`, если он существует, 2. В случае, если хинт равен "string" - происходит попытка вызвать `obj.toString()` и `obj.valueOf()`, смотря что есть. @@ -24,4 +22,6 @@ sidebar_position: 7 Все эти методы должны возвращать примитив (если определены). -На практике часто бывает достаточно реализовать только `obj.toString()` в качестве универсального метода для преобразований к строке, который должен возвращать удобочитаемое представление объекта для целей логирования или отладки. \ No newline at end of file +На практике часто бывает достаточно реализовать только `obj.toString()` в качестве универсального метода для преобразований к строке, который должен возвращать удобочитаемое представление объекта для целей логирования или отладки. + +🚀 **Источник: [https://learn.javascript.ru/object-toprimitive](https://learn.javascript.ru/object-toprimitive)** \ No newline at end of file diff --git a/docs/javascript/02-objects/08-getter-setter.md b/docs/javascript/02-objects/08-getter-setter.md index 45ec397..084cbaf 100644 --- a/docs/javascript/02-objects/08-getter-setter.md +++ b/docs/javascript/02-objects/08-getter-setter.md @@ -75,3 +75,5 @@ user.name = ""; // Имя слишком короткое... ## Использование для совместимости У аксессоров есть интересная область применения – они позволяют в любой момент взять «обычное» свойство и изменить его поведение, поменяв на геттер и сеттер. + +🚀 **Источник: [https://learn.javascript.ru/property-accessors](https://learn.javascript.ru/property-accessors)** \ No newline at end of file diff --git a/docs/javascript/03-data-types/01-primitive-methods.md b/docs/javascript/03-data-types/01-primitive-methods.md index cec18a3..9da9070 100644 --- a/docs/javascript/03-data-types/01-primitive-methods.md +++ b/docs/javascript/03-data-types/01-primitive-methods.md @@ -15,8 +15,6 @@ sidebar_position: 1 - Может хранить множество значений как свойства. - Объявляется при помощи фигурных скобок \{\}, например: \{name: "Рома", age: 30\}. В JavaScript есть и другие виды объектов: например, функции тоже являются объектами. - - ## Примитив как объект 1. Примитивы остаются примитивами. Одно значение, как и хотелось. 2. Язык позволяет осуществлять доступ к методам и свойствам строк, чисел, булевых значений и символов. @@ -25,4 +23,6 @@ sidebar_position: 1 Каждый примитив имеет свой собственный «объект-обёртку», которые называются: **`String`**, **`Number`**, **`Boolean`**, **`Symbol`** и **`BigInt`**. Таким образом, они имеют разный набор методов. 💥 ***null/undefined не имеют методов*** \ -Попытка доступа к свойствам такого значения возвратит ошибку: +Попытка доступа к свойствам такого значения возвратит ошибку + +🚀 **Источник: [https://learn.javascript.ru/primitives-methods](https://learn.javascript.ru/primitives-methods)** \ No newline at end of file diff --git a/docs/javascript/03-data-types/02-numbers.md b/docs/javascript/03-data-types/02-numbers.md index a1a87be..318d80c 100644 --- a/docs/javascript/03-data-types/02-numbers.md +++ b/docs/javascript/03-data-types/02-numbers.md @@ -121,3 +121,5 @@ alert( parseInt('a123') ); // NaN ### Другие математические функции В JavaScript встроен объект **Math**, который содержит различные математические функции и константы. + +🚀 **Источник: [https://learn.javascript.ru/number](https://learn.javascript.ru/number)** \ No newline at end of file diff --git a/docs/javascript/03-data-types/03-strings.md b/docs/javascript/03-data-types/03-strings.md index c8c4070..36f6498 100644 --- a/docs/javascript/03-data-types/03-strings.md +++ b/docs/javascript/03-data-types/03-strings.md @@ -92,4 +92,6 @@ str.substr(start [, length]) // - возвращает часть строки Вызов str.localeCompare(str2) возвращает число, которое показывает, какая строка больше в соответствии с правилами языка: - Отрицательное число, если str меньше str2. - Положительное число, если str больше str2. -- 0, если строки равны. \ No newline at end of file +- 0, если строки равны. + +🚀 **Источник: [https://learn.javascript.ru/string](https://learn.javascript.ru/string)** \ No newline at end of file diff --git a/docs/javascript/03-data-types/04-arrays.md b/docs/javascript/03-data-types/04-arrays.md index 8d0dba0..eb3f564 100644 --- a/docs/javascript/03-data-types/04-arrays.md +++ b/docs/javascript/03-data-types/04-arrays.md @@ -75,4 +75,4 @@ alert( matrix[1][1] ); // 5, центральный элемент Итак, если мы всё же сравниваем массивы с помощью ==, то они никогда не будут одинаковыми, если только мы не сравним две переменные, которые ссылаются на один и тот же массив Вместо этого сравните их по элементам в цикле или используя методы итерации. - +🚀 **Источник: [https://learn.javascript.ru/array](https://learn.javascript.ru/array)** \ No newline at end of file diff --git a/docs/javascript/03-data-types/05-array-methods.md b/docs/javascript/03-data-types/05-array-methods.md index 6480efb..ce074ca 100644 --- a/docs/javascript/03-data-types/05-array-methods.md +++ b/docs/javascript/03-data-types/05-array-methods.md @@ -164,4 +164,6 @@ alert( result ); // 15 - arr.some(fn)/arr.every(fn) проверяет массив. - arr.fill(value, start, end) – заполняет массив повторяющимися value, начиная с индекса start до end. - arr.copyWithin(target, start, end) – копирует свои элементы, начиная с позиции start и заканчивая end, в себя, на позицию target (перезаписывая существующие). -- arr.flat(depth)/arr.flatMap(fn) создаёт новый плоский массив из многомерного массива. \ No newline at end of file +- arr.flat(depth)/arr.flatMap(fn) создаёт новый плоский массив из многомерного массива. + +🚀 **Источник: [https://learn.javascript.ru/array-methods](https://learn.javascript.ru/array-methods)** \ No newline at end of file diff --git a/docs/javascript/03-data-types/06-map-set.md b/docs/javascript/03-data-types/06-map-set.md index b9a32f2..ec7658a 100644 --- a/docs/javascript/03-data-types/06-map-set.md +++ b/docs/javascript/03-data-types/06-map-set.md @@ -94,4 +94,5 @@ alert(obj.orange); // готово! obj = { banana: 1, orange: 2, meat: 4 } - **`set.values()`** – возвращает перебираемый объект для значений, - **`set.keys()`** – то же самое, что и **`set.values()`**, присутствует для обратной совместимости с **`Map`**, - **`set.entries()`** – возвращает перебираемый объект для пар вида [значение, значение], присутствует для обратной совместимости с **`Map`**. -- \ No newline at end of file + +🚀 **Источник: [https://learn.javascript.ru/map-set](https://learn.javascript.ru/map-set)** \ No newline at end of file diff --git a/docs/javascript/03-data-types/07-weakMap-weakSet.md b/docs/javascript/03-data-types/07-weakMap-weakSet.md index 41a21f1..9d00a78 100644 --- a/docs/javascript/03-data-types/07-weakMap-weakSet.md +++ b/docs/javascript/03-data-types/07-weakMap-weakSet.md @@ -60,4 +60,6 @@ alert(visitedSet.has(mary)); // false john = null; // структура данных visitedSet будет очищена автоматически (объект john будет удалён из visitedSet) -``` \ No newline at end of file +``` + +🚀 **Источник: [https://learn.javascript.ru/weakmap-weakset](https://learn.javascript.ru/weakmap-weakset)** \ No newline at end of file diff --git a/docs/javascript/03-data-types/08-objects-methods.md b/docs/javascript/03-data-types/08-objects-methods.md index 8af8e82..8a22cb2 100644 --- a/docs/javascript/03-data-types/08-objects-methods.md +++ b/docs/javascript/03-data-types/08-objects-methods.md @@ -35,4 +35,6 @@ let user = { Если мы хотели бы их применить, то можно использовать Object.entries с последующим вызовом Object.fromEntries: 1. Вызов **`Object.entries(obj)`** возвращает массив пар ключ/значение для obj. 2. На нём вызываем методы массива, например, **`map`**. -3. Используем `Object.fromEntries(array)` на результате, чтобы преобразовать его обратно в объект. \ No newline at end of file +3. Используем `Object.fromEntries(array)` на результате, чтобы преобразовать его обратно в объект. + +🚀 **Источник: [https://learn.javascript.ru/keys-values-entries](https://learn.javascript.ru/keys-values-entries)** \ No newline at end of file diff --git a/docs/javascript/03-data-types/09-destr-assignment.md b/docs/javascript/03-data-types/09-destr-assignment.md index 2271c2f..e2dd979 100644 --- a/docs/javascript/03-data-types/09-destr-assignment.md +++ b/docs/javascript/03-data-types/09-destr-assignment.md @@ -117,3 +117,5 @@ function showMenu(title = "Untitled", width = 200, height = 100, items = []) { // ... } ``` + +🚀 **Источник: [https://learn.javascript.ru/destructuring-assignment](https://learn.javascript.ru/destructuring-assignment)** \ No newline at end of file diff --git a/docs/javascript/03-data-types/10-date-time.md b/docs/javascript/03-data-types/10-date-time.md index 379c0fb..170ceff 100644 --- a/docs/javascript/03-data-types/10-date-time.md +++ b/docs/javascript/03-data-types/10-date-time.md @@ -68,4 +68,6 @@ alert(date); // ...1st Feb 2013! Возможны и более короткие варианты, например, YYYY-MM-DD или YYYY-MM, или даже YYYY. -Вызов Date.parse(str) обрабатывает строку в заданном формате и возвращает таймстамп (количество миллисекунд с 1 января 1970 года UTC+0). Если формат неправильный, возвращается NaN. \ No newline at end of file +Вызов Date.parse(str) обрабатывает строку в заданном формате и возвращает таймстамп (количество миллисекунд с 1 января 1970 года UTC+0). Если формат неправильный, возвращается NaN. + +🚀 **Источник: [https://learn.javascript.ru/date](https://learn.javascript.ru/date)** \ No newline at end of file diff --git a/docs/javascript/03-data-types/11-json.md b/docs/javascript/03-data-types/11-json.md index 1ebb3b6..28942e9 100644 --- a/docs/javascript/03-data-types/11-json.md +++ b/docs/javascript/03-data-types/11-json.md @@ -60,3 +60,4 @@ let value = JSON.parse(str[, reviver]); Кроме того, JSON не поддерживает комментарии. +🚀 **Источник: [https://learn.javascript.ru/json](https://learn.javascript.ru/json)** \ No newline at end of file diff --git a/docs/javascript/04-functions/01-intro.md b/docs/javascript/04-functions/01-intro.md index 348f957..7460130 100644 --- a/docs/javascript/04-functions/01-intro.md +++ b/docs/javascript/04-functions/01-intro.md @@ -42,4 +42,6 @@ let double = n => n * 2; - У функций могут быть локальные переменные: т.е. объявленные в теле функции. Такие переменные видимы только внутри функции. - У параметров могут быть значения по умолчанию: function sum(a = 1, b = 2) \{...\}. -- Функции всегда что-нибудь возвращают. Если нет оператора return, результатом будет undefined. \ No newline at end of file +- Функции всегда что-нибудь возвращают. Если нет оператора return, результатом будет undefined. + +🚀 **Источник: [https://learn.javascript.ru/function-basics](https://learn.javascript.ru/function-basics)** \ No newline at end of file diff --git a/docs/javascript/04-functions/02-func-declaration.md b/docs/javascript/04-functions/02-func-declaration.md index 6727568..161a6d6 100644 --- a/docs/javascript/04-functions/02-func-declaration.md +++ b/docs/javascript/04-functions/02-func-declaration.md @@ -36,4 +36,6 @@ function имя(параметры, через, запятую) { Возможно использовать **return** и без значения. Это приведёт к немедленному выходу из функции. ❗ ***Результат функции с пустым return или без него – undefined*** \ -❌ Никогда не добавляйте перевод строки между return и его значением \ No newline at end of file +❌ Никогда не добавляйте перевод строки между return и его значением + +🚀 **Источник: [https://learn.javascript.ru/function-basics](https://learn.javascript.ru/function-basics)** \ No newline at end of file diff --git a/docs/javascript/04-functions/03-func-expression.md b/docs/javascript/04-functions/03-func-expression.md index e877661..52ed122 100644 --- a/docs/javascript/04-functions/03-func-expression.md +++ b/docs/javascript/04-functions/03-func-expression.md @@ -78,4 +78,6 @@ let sayHi = function(name) { // (*) магии больше нет В большинстве случаев, когда нам нужно объявить функцию, Function Declaration предпочтительнее, т.к функция будет видна до своего объявления в коде. Это даёт нам больше гибкости в организации кода, и, как правило, делает его более -читабельным. \ No newline at end of file +читабельным. + +🚀 **Источник: [https://learn.javascript.ru/function-expressions](https://learn.javascript.ru/function-expressions)** \ No newline at end of file diff --git a/docs/javascript/04-functions/04-arrow-func.md b/docs/javascript/04-functions/04-arrow-func.md index b7a89e7..573bee7 100644 --- a/docs/javascript/04-functions/04-arrow-func.md +++ b/docs/javascript/04-functions/04-arrow-func.md @@ -57,4 +57,6 @@ function defer(f, ms) { - Не имеют this. - Не имеют arguments. - Не могут быть вызваны с new. -- У них также нет super. \ No newline at end of file +- У них также нет super. + +🚀 **Источник: [https://learn.javascript.ru/arrow-functions-basics](https://learn.javascript.ru/arrow-functions-basics)** \ No newline at end of file diff --git a/docs/javascript/04-functions/05-args.md b/docs/javascript/04-functions/05-args.md index 6c67b8b..804d673 100644 --- a/docs/javascript/04-functions/05-args.md +++ b/docs/javascript/04-functions/05-args.md @@ -60,3 +60,4 @@ let arr = [3, 5, 1]; alert( Math.max(...arr) ); // 5 (оператор "раскрывает" массив в список аргументов) ``` +🚀 **Источник: [https://learn.javascript.ru/rest-parameters-spread-operator](https://learn.javascript.ru/rest-parameters-spread-operator)** \ No newline at end of file diff --git a/docs/javascript/04-functions/06-closure.md b/docs/javascript/04-functions/06-closure.md index d36a3ce..3d7fe2e 100644 --- a/docs/javascript/04-functions/06-closure.md +++ b/docs/javascript/04-functions/06-closure.md @@ -3,8 +3,6 @@ sidebar_position: 6 --- # Область видимости переменных, замыкание -Источник: DeepSeek -Доп. источник: [https://learn.javascript.ru/closure](https://learn.javascript.ru/closure) ## Область видимости (scope) В JavaScript **область видимости (scope)** определяет, где переменные, функции и другие идентификаторы могут быть использованы в коде. Понимание области видимости важно для написания корректного и предсказуемого кода. В JavaScript есть несколько типов областей видимости: @@ -134,3 +132,6 @@ delayedGreeting("Алексей"); // Через 1 секунду: "Привет Замыкания могут приводить к утечкам памяти, если они сохраняют ссылки на большие объекты, которые больше не используются. Чтобы избежать этого: - Убедитесь, что замыкания не сохраняют ненужные данные. - Используйте null для очистки ссылок, когда они больше не нужны. + +🚀 Источник: DeepSeek \ +🚀 Доп. источник: [https://learn.javascript.ru/closure](https://learn.javascript.ru/closure) \ No newline at end of file diff --git a/docs/javascript/04-functions/07-global-object.md b/docs/javascript/04-functions/07-global-object.md index c0597dc..75fee0b 100644 --- a/docs/javascript/04-functions/07-global-object.md +++ b/docs/javascript/04-functions/07-global-object.md @@ -17,4 +17,6 @@ sidebar_position: 7 - …Но чаще на него ссылаются по-старому, используя имя, характерное для данного окружения, такое как window (браузер) и global (Node.js). - Следует хранить значения в глобальном объекте, только если они действительно глобальны для нашего проекта. И стараться свести их количество к минимуму. - В браузерах, если только мы не используем модули, глобальные функции и переменные, объявленные с помощью var, становятся свойствами глобального объекта. -- Для того, чтобы код был проще и в будущем его легче было поддерживать, следует обращаться к свойствам глобального объекта напрямую, как window.x. \ No newline at end of file +- Для того, чтобы код был проще и в будущем его легче было поддерживать, следует обращаться к свойствам глобального объекта напрямую, как window.x. + +🚀 **Источник: [https://learn.javascript.ru/global-object](https://learn.javascript.ru/global-object)** \ No newline at end of file diff --git a/docs/javascript/04-functions/08-setTimeout-setInterval.md b/docs/javascript/04-functions/08-setTimeout-setInterval.md index d113c56..d2168ce 100644 --- a/docs/javascript/04-functions/08-setTimeout-setInterval.md +++ b/docs/javascript/04-functions/08-setTimeout-setInterval.md @@ -66,4 +66,6 @@ let timerId = setTimeout(function request() { Особый вариант использования: `setTimeout(func, 0)` или просто `setTimeout(func)`. Это планирует вызов `func` настолько быстро, насколько это возможно. Но планировщик будет вызывать функцию только после завершения выполнения текущего кода. -Так вызов функции будет запланирован сразу после выполнения текущего кода. \ No newline at end of file +Так вызов функции будет запланирован сразу после выполнения текущего кода. + +🚀 **Источник: [https://learn.javascript.ru/settimeout-setinterval](https://learn.javascript.ru/settimeout-setinterval)** \ No newline at end of file diff --git a/docs/javascript/04-functions/09-decorators-call-apply.md b/docs/javascript/04-functions/09-decorators-call-apply.md index 0ea37fa..2370408 100644 --- a/docs/javascript/04-functions/09-decorators-call-apply.md +++ b/docs/javascript/04-functions/09-decorators-call-apply.md @@ -23,3 +23,4 @@ let wrapper = function(original, arguments) { ``` Весьма распространено заимствовать методы массива и применять их к arguments. В качестве альтернативы можно использовать объект с остаточными параметрами ...args, который является реальным массивом. +🚀 **Источник: [https://learn.javascript.ru/call-apply-decorators](https://learn.javascript.ru/call-apply-decorators)** \ No newline at end of file diff --git a/docs/javascript/04-functions/10-apply-context.md b/docs/javascript/04-functions/10-apply-context.md index f26238f..231534d 100644 --- a/docs/javascript/04-functions/10-apply-context.md +++ b/docs/javascript/04-functions/10-apply-context.md @@ -62,3 +62,5 @@ let sayHi = user.sayHi.bind(user); // (*) sayHi(); // Привет, Вася! setTimeout(sayHi, 1000); // Привет, Вася! ``` + +🚀 **Источник: [https://learn.javascript.ru/bind](https://learn.javascript.ru/bind)** \ No newline at end of file diff --git a/docs/javascript/05-prototypes/01-prototype-inheritance.md b/docs/javascript/05-prototypes/01-prototype-inheritance.md index c552ada..2fce8a3 100644 --- a/docs/javascript/05-prototypes/01-prototype-inheritance.md +++ b/docs/javascript/05-prototypes/01-prototype-inheritance.md @@ -42,3 +42,5 @@ sidebar_position: 1 Цикл `for..in` проходит не только по собственным, но и по унаследованным свойствам объекта. Если унаследованные свойства нам не нужны, то мы можем отфильтровать их при помощи встроенного метода `obj.hasOwnProperty(key)`: он возвращает `true`, если у `obj` есть собственное, не унаследованное, свойство с именем `key`. + +🚀 **Источник: [https://learn.javascript.ru/prototype-inheritance](https://learn.javascript.ru/prototype-inheritance)** \ No newline at end of file diff --git a/docs/javascript/05-prototypes/02-f-prototype.md b/docs/javascript/05-prototypes/02-f-prototype.md index fb05d09..8300569 100644 --- a/docs/javascript/05-prototypes/02-f-prototype.md +++ b/docs/javascript/05-prototypes/02-f-prototype.md @@ -25,4 +25,6 @@ let user = { }; ``` -По умолчанию все функции имеют `F.prototype = { constructor: F }`, поэтому мы можем получить конструктор объекта через свойство `"constructor"`. \ No newline at end of file +По умолчанию все функции имеют `F.prototype = { constructor: F }`, поэтому мы можем получить конструктор объекта через свойство `"constructor"`. + +🚀 **Источник: [https://learn.javascript.ru/function-prototype](https://learn.javascript.ru/function-prototype)** \ No newline at end of file diff --git a/docs/javascript/05-prototypes/03-build-in-prototypes.md b/docs/javascript/05-prototypes/03-build-in-prototypes.md index 95c79f3..74b047f 100644 --- a/docs/javascript/05-prototypes/03-build-in-prototypes.md +++ b/docs/javascript/05-prototypes/03-build-in-prototypes.md @@ -63,4 +63,6 @@ alert( obj.join(',') ); // Hello,world! Но это будет невозможно, если `obj` уже наследует от другого объекта. Помните, мы можем наследовать только от одного объекта одновременно. -Заимствование методов – гибкий способ, позволяющий смешивать функциональность разных объектов по необходимости. \ No newline at end of file +Заимствование методов – гибкий способ, позволяющий смешивать функциональность разных объектов по необходимости. + +🚀 **Источник: [https://learn.javascript.ru/native-prototypes](https://learn.javascript.ru/native-prototypes)** \ No newline at end of file diff --git a/docs/javascript/05-prototypes/04-prototype-methods.md b/docs/javascript/05-prototypes/04-prototype-methods.md index 51c71d0..5df6bca 100644 --- a/docs/javascript/05-prototypes/04-prototype-methods.md +++ b/docs/javascript/05-prototypes/04-prototype-methods.md @@ -28,4 +28,6 @@ sidebar_position: 4 - `Reflect.ownKeys(obj)` – возвращает массив всех собственных ключей. - `obj.hasOwnProperty(key)`: возвращает `true`, если у `obj` есть собственное (не унаследованное) свойство с именем `key`. -Все методы, которые возвращают свойства объектов (такие как `Object.keys` и другие), возвращают «собственные» свойства. Если мы хотим получить и унаследованные, можно воспользоваться циклом `for..in`. \ No newline at end of file +Все методы, которые возвращают свойства объектов (такие как `Object.keys` и другие), возвращают «собственные» свойства. Если мы хотим получить и унаследованные, можно воспользоваться циклом `for..in`. + +🚀 **Источник: [https://learn.javascript.ru/prototype-methods](https://learn.javascript.ru/prototype-methods)** \ No newline at end of file diff --git a/docs/javascript/06-classes/01-class-base.md b/docs/javascript/06-classes/01-class-base.md index 9ccf3cd..b90582d 100644 --- a/docs/javascript/06-classes/01-class-base.md +++ b/docs/javascript/06-classes/01-class-base.md @@ -48,4 +48,6 @@ class User { } new User().sayHi(); ``` -Свойство name не устанавливается в `User.prototype`. Вместо этого оно создаётся оператором `new` перед запуском конструктора, это именно свойство объекта. \ No newline at end of file +Свойство name не устанавливается в `User.prototype`. Вместо этого оно создаётся оператором `new` перед запуском конструктора, это именно свойство объекта. + +🚀 **Источник: [https://learn.javascript.ru/class](https://learn.javascript.ru/class)** \ No newline at end of file diff --git a/docs/javascript/06-classes/02-inheritance-classes.md b/docs/javascript/06-classes/02-inheritance-classes.md index 231a7a8..3d633be 100644 --- a/docs/javascript/06-classes/02-inheritance-classes.md +++ b/docs/javascript/06-classes/02-inheritance-classes.md @@ -45,4 +45,6 @@ class Rabbit extends Animal { У классов есть ключевое слово "super", чтобы сделать новый на его основе, изменяя или расширяя его функциональность super.method(...) вызывает родительский метод. -super(...) для вызова родительского конструктора (работает только внутри нашего конструктора). \ No newline at end of file +super(...) для вызова родительского конструктора (работает только внутри нашего конструктора). + +🚀 **Источник: [https://learn.javascript.ru/class-inheritance](https://learn.javascript.ru/class-inheritance)** \ No newline at end of file diff --git a/docs/javascript/06-classes/03-static-option-methods.md b/docs/javascript/06-classes/03-static-option-methods.md index 8d26c83..ff99ff2 100644 --- a/docs/javascript/06-classes/03-static-option-methods.md +++ b/docs/javascript/06-classes/03-static-option-methods.md @@ -43,4 +43,6 @@ Article.publisher = "Илья Кантор"; ``` ## Наследование статических свойств и методов -Статические свойства и методы наследуются. \ No newline at end of file +Статические свойства и методы наследуются. + +🚀 **Источник: [https://learn.javascript.ru/static-properties-methods](https://learn.javascript.ru/static-properties-methods)** \ No newline at end of file diff --git a/docs/javascript/06-classes/04-private-protected-options-methods.md b/docs/javascript/06-classes/04-private-protected-options-methods.md index 6a88808..922139e 100644 --- a/docs/javascript/06-classes/04-private-protected-options-methods.md +++ b/docs/javascript/06-classes/04-private-protected-options-methods.md @@ -43,4 +43,6 @@ sidebar_position: 4 На уровне языка # является специальным символом, который означает, что поле приватное. Мы не можем получить к нему доступ извне или из наследуемых классов. -Приватные поля не конфликтуют с публичными. У нас может быть два поля одновременно – приватное #waterAmount и публичное waterAmount. \ No newline at end of file +Приватные поля не конфликтуют с публичными. У нас может быть два поля одновременно – приватное #waterAmount и публичное waterAmount. + +🚀 **Источник: [https://learn.javascript.ru/private-protected-properties-methods](https://learn.javascript.ru/private-protected-properties-methods)** \ No newline at end of file diff --git a/docs/javascript/06-classes/05-class-check.md b/docs/javascript/06-classes/05-class-check.md index ab9b155..b644257 100644 --- a/docs/javascript/06-classes/05-class-check.md +++ b/docs/javascript/06-classes/05-class-check.md @@ -43,4 +43,6 @@ alert( {}.toString.call(new XMLHttpRequest()) ); // [object XMLHttpRequest] ``` В итоге мы получили «typeof на стероидах», который не только работает с примитивными типами данных, но также и со встроенными объектами, и даже может быть настроен. -Можно использовать `{}.toString.call` вместо `instanceof` для встроенных объектов, когда мы хотим получить тип в виде строки, а не просто сделать проверку. \ No newline at end of file +Можно использовать `{}.toString.call` вместо `instanceof` для встроенных объектов, когда мы хотим получить тип в виде строки, а не просто сделать проверку. + +🚀 **Источник: [https://learn.javascript.ru/instanceof](https://learn.javascript.ru/instanceof)** \ No newline at end of file diff --git a/docs/javascript/06-classes/06-mixins.md b/docs/javascript/06-classes/06-mixins.md index cc6ee69..962b903 100644 --- a/docs/javascript/06-classes/06-mixins.md +++ b/docs/javascript/06-classes/06-mixins.md @@ -13,3 +13,5 @@ sidebar_position: 6 Простейший способ реализовать примесь в JavaScript – это создать объект с полезными методами, которые затем могут быть легко добавлены в прототип любого класса.\ Это не наследование, а просто копирование методов. Примеси могут наследовать друг друга. + +🚀 **Источник: [https://learn.javascript.ru/mixins](https://learn.javascript.ru/mixins)** \ No newline at end of file diff --git a/docs/javascript/07-errors/01-try-catch.md b/docs/javascript/07-errors/01-try-catch.md index eb3dc66..c9a2f4b 100644 --- a/docs/javascript/07-errors/01-try-catch.md +++ b/docs/javascript/07-errors/01-try-catch.md @@ -72,3 +72,5 @@ window.onerror = function(message, url, line, col, error) { - **url** - URL скрипта, в котором произошла ошибка. - **line**, col - Номера строки и столбца, в которых произошла ошибка. - **error** - Объект ошибки. + +🚀 **Источник: [https://learn.javascript.ru/try-catch](https://learn.javascript.ru/try-catch)** \ No newline at end of file diff --git a/docs/javascript/07-errors/02-extend-errors.md b/docs/javascript/07-errors/02-extend-errors.md index 7885aca..9925a51 100644 --- a/docs/javascript/07-errors/02-extend-errors.md +++ b/docs/javascript/07-errors/02-extend-errors.md @@ -3,9 +3,9 @@ sidebar_position: 2 --- # Пользовательские ошибки, расширение Error -Источник: [https://learn.javascript.ru/custom-errors](https://learn.javascript.ru/custom-errors) - Мы можем наследовать свои классы ошибок от `Error` и других встроенных классов ошибок, но нужно позаботиться о свойстве name и не забыть вызвать `super`. - Мы можем использовать `instanceof` для проверки типа ошибок. Это также работает с наследованием. Но иногда у нас объект ошибки, возникшей в сторонней библиотеке, и нет простого способа получить класс. Тогда для проверки типа ошибки можно использовать свойство `name`. - Обёртывание исключений является распространённой техникой: функция ловит низкоуровневые исключения и создаёт одно «высокоуровневое» исключение вместо разных низкоуровневых. Иногда низкоуровневые исключения становятся свойствами этого объекта, как `err.cause` в примерах выше, но это не обязательно. +🚀 **Источник: [https://learn.javascript.ru/custom-errors](https://learn.javascript.ru/custom-errors)** \ No newline at end of file diff --git a/docs/javascript/08-promises/01-callbacks.md b/docs/javascript/08-promises/01-callbacks.md index 927cfc4..4083089 100644 --- a/docs/javascript/08-promises/01-callbacks.md +++ b/docs/javascript/08-promises/01-callbacks.md @@ -3,7 +3,6 @@ sidebar_position: 1 --- # Введение: колбэки -Источник *Deepseek* Асинхронное программирование с использованием callback-функций в JavaScript — это один из традиционных подходов для работы с асинхронными операциями, такими как чтение файлов, запросы к серверу или таймеры. Callback-функция передается в качестве аргумента в асинхронную функцию и вызывается после завершения этой операции. @@ -43,4 +42,6 @@ console.log("Ожидание данных..."); ``` Особенности: - Callback-функции могут привести к так называемому "callback hell" (ад колбэков), когда много асинхронных операций вложены друг в друга, что делает код сложным для чтения и поддержки. -- В современных JavaScript-проектах вместо callback-функций часто используют Promises или async/await для более удобной работы с асинхронным кодом. \ No newline at end of file +- В современных JavaScript-проектах вместо callback-функций часто используют Promises или async/await для более удобной работы с асинхронным кодом. + +🚀 **Источник Deepseek** \ No newline at end of file diff --git a/docs/javascript/08-promises/02-promises.md b/docs/javascript/08-promises/02-promises.md index 908b48f..59b3f30 100644 --- a/docs/javascript/08-promises/02-promises.md +++ b/docs/javascript/08-promises/02-promises.md @@ -3,8 +3,6 @@ sidebar_position: 2 --- # Promises -Источник *Deepseek* - Использование Promises (обещаний) в JavaScript — это более современный и удобный способ работы с асинхронными операциями по сравнению с callback-функциями. Promises позволяют избежать "callback hell" и делают код более читаемым и структурированным. Вот пример асинхронного программирования с использованием Promises: @@ -83,3 +81,5 @@ fetchData() 💥 **Thenable** > Если быть более точными, обработчик может возвращать не именно промис, а любой объект, содержащий метод .then, такие объекты называют «thenable», и этот объект будет обработан как промис. + +🚀 **Источник Deepseek** \ No newline at end of file diff --git a/docs/javascript/08-promises/03-promises-error.md b/docs/javascript/08-promises/03-promises-error.md index d57806b..abd5666 100644 --- a/docs/javascript/08-promises/03-promises-error.md +++ b/docs/javascript/08-promises/03-promises-error.md @@ -3,8 +3,6 @@ sidebar_position: 3 --- # Обработка ошибок -Источник: [https://learn.javascript.ru/promise-error-handling](https://learn.javascript.ru/promise-error-handling) - - `.catch` перехватывает все виды ошибок в промисах: будь то вызов `reject()` или ошибка, брошенная в обработчике при помощи `throw`. - `.then` также перехватывает ошибки таким же образом, если задан второй аргумент (который является обработчиком ошибок). - Необходимо размещать `.catch` там, где мы хотим обработать ошибки и знаем, как это сделать. Обработчик может проанализировать ошибку (могут быть полезны пользовательские классы ошибок) и пробросить её, если ничего не знает о ней (возможно, это программная ошибка). @@ -50,3 +48,4 @@ new Promise(function() { Обычно такие ошибки неустранимы, поэтому лучше всего – информировать пользователя о проблеме и, возможно, отправить информацию об ошибке на сервер. +🚀 **Источник: [https://learn.javascript.ru/promise-error-handling](https://learn.javascript.ru/promise-error-handling)** \ No newline at end of file diff --git a/docs/javascript/08-promises/04-promise-api.md b/docs/javascript/08-promises/04-promise-api.md index 095af17..e3616ca 100644 --- a/docs/javascript/08-promises/04-promise-api.md +++ b/docs/javascript/08-promises/04-promise-api.md @@ -3,7 +3,6 @@ sidebar_position: 4 --- # Promise API -Источник: В классе Promise есть 6 статических методов. - **Promise.all(promises)** – ожидает выполнения всех промисов и возвращает массив с результатами. Если любой из указанных промисов вернёт ошибку, то результатом работы Promise.all будет эта ошибка, результаты остальных промисов будут игнорироваться. @@ -15,4 +14,6 @@ sidebar_position: 4 - **Promise.resolve(value)** – возвращает успешно выполнившийся промис с результатом value. - **Promise.reject(error)** – возвращает промис с ошибкой error. -Из всех перечисленных методов, самый часто используемый – **Promise.all**. \ No newline at end of file +Из всех перечисленных методов, самый часто используемый – **Promise.all**. + +🚀 **Источник Deepseek** \ No newline at end of file diff --git a/docs/javascript/08-promises/05-promisification.md b/docs/javascript/08-promises/05-promisification.md index 1809eee..f820f9a 100644 --- a/docs/javascript/08-promises/05-promisification.md +++ b/docs/javascript/08-promises/05-promisification.md @@ -3,8 +3,6 @@ sidebar_position: 5 --- # Промисификация -Источник: [https://learn.javascript.ru/promisify](https://learn.javascript.ru/promisify) - Промисификация – это длинное слово для простого преобразования. Мы берём функцию, которая принимает колбэк и меняем её, чтобы она вместо этого возвращала промис. Такие преобразования часто необходимы в реальной жизни, так как многие функции и библиотеки основаны на колбэках, а использование промисов более удобно, поэтому есть смысл «промисифицировать» их. @@ -38,4 +36,6 @@ function promisify(f, manyArgs = false) { // использование: f = promisify(f, true); f(...).then(arrayOfResults => ..., err => ...) -``` \ No newline at end of file +``` + +🚀 **Источник: [https://learn.javascript.ru/promisify](https://learn.javascript.ru/promisify)** \ No newline at end of file diff --git a/docs/javascript/08-promises/06-acync-await.md b/docs/javascript/08-promises/06-acync-await.md index ada4728..932ebd5 100644 --- a/docs/javascript/08-promises/06-acync-await.md +++ b/docs/javascript/08-promises/06-acync-await.md @@ -16,4 +16,6 @@ sidebar_position: 6 Вместе они предоставляют отличный каркас для написания асинхронного кода. Такой код легко и писать, и читать. -Хотя при работе с `async/await` можно обходиться без `promise.then/catch`, иногда всё-таки приходится использовать эти методы (на верхнем уровне вложенности, например). Также `await` отлично работает в сочетании с `Promise.all`, если необходимо выполнить несколько задач параллельно. \ No newline at end of file +Хотя при работе с `async/await` можно обходиться без `promise.then/catch`, иногда всё-таки приходится использовать эти методы (на верхнем уровне вложенности, например). Также `await` отлично работает в сочетании с `Promise.all`, если необходимо выполнить несколько задач параллельно. + +🚀 **Источник: [https://learn.javascript.ru/async-await](https://learn.javascript.ru/async-await)** \ No newline at end of file diff --git a/docs/javascript/08-promises/07-event-loop.md b/docs/javascript/08-promises/07-event-loop.md index d687bdb..3b2704c 100644 --- a/docs/javascript/08-promises/07-event-loop.md +++ b/docs/javascript/08-promises/07-event-loop.md @@ -3,9 +3,6 @@ sidebar_position: 7 --- # Event loop -Источник: DeepSeek \ -Видеоразбор: [JavaScript - Event Loop | Асинхронность, Web API, Очереди (макро/микро)задач, Отрисовка кадров](https://www.youtube.com/watch?v=YTLXrji4DJc) - Event Loop (цикл событий) — это механизм, который позволяет JavaScript выполнять асинхронные операции, несмотря на то, что сам язык является однопоточным. Он отвечает за обработку событий, вызовов колбэков и выполнение задач в правильном порядке. ## Основные компоненты Event Loop @@ -65,4 +62,7 @@ Timeout 3. Промис сразу резолвится, и его колбэк попадает в Microtask Queue. 4. После завершения синхронного кода Event Loop сначала выполняет микрозадачи (колбэк промиса), а затем переходит к Callback Queue (колбэк `setTimeout`). -Event Loop позволяет JavaScript эффективно обрабатывать асинхронные операции, несмотря на однопоточность. Он управляет порядком выполнения задач, используя Call Stack, Web APIs, Callback Queue и Microtask Queue. Понимание этого механизма важно для написания эффективного и предсказуемого асинхронного кода. \ No newline at end of file +Event Loop позволяет JavaScript эффективно обрабатывать асинхронные операции, несмотря на однопоточность. Он управляет порядком выполнения задач, используя Call Stack, Web APIs, Callback Queue и Microtask Queue. Понимание этого механизма важно для написания эффективного и предсказуемого асинхронного кода. + +🚀 **Источник: DeepSeek** \ +🚀 Видеоразбор: [JavaScript - Event Loop | Асинхронность, Web API, Очереди (макро/микро)задач, Отрисовка кадров](https://www.youtube.com/watch?v=YTLXrji4DJc) diff --git a/docs/javascript/09-generators/01-generators.md b/docs/javascript/09-generators/01-generators.md index 31e52e4..83d84c9 100644 --- a/docs/javascript/09-generators/01-generators.md +++ b/docs/javascript/09-generators/01-generators.md @@ -60,3 +60,5 @@ for(let value of generator) { `yield` – дорога в обе стороны: он не только возвращает результат наружу, но и может передавать значение извне в генератор. Чтобы это сделать, нам нужно вызвать `generator.next(arg)` с аргументом. Этот аргумент становится результатом `yield`. + +🚀 **Источник: [https://learn.javascript.ru/generators](https://learn.javascript.ru/generators)** \ No newline at end of file diff --git a/docs/javascript/09-generators/02-async-iterators-generators.md b/docs/javascript/09-generators/02-async-iterators-generators.md index 1f815ed..8a2df6d 100644 --- a/docs/javascript/09-generators/02-async-iterators-generators.md +++ b/docs/javascript/09-generators/02-async-iterators-generators.md @@ -3,9 +3,6 @@ sidebar_position: 2 --- # Асинхронные итераторы и генераторы - -Источник: [https://learn.javascript.ru/async-iterators-generators](https://learn.javascript.ru/async-iterators-generators) - Обычные итераторы и генераторы прекрасно работают с данными, которые не требуют времени для их создания или получения. Когда мы ожидаем, что данные будут поступать асинхронно, с задержками, можно использовать их асинхронные аналоги и @@ -32,3 +29,5 @@ sidebar_position: 2 например, браузерах, есть и другое API, называемое Streams (потоки), который предоставляет специальные интерфейсы для работы с такими потоками данных, их преобразования и передачи из одного потока в другой (например, загрузка из одного источника и сразу отправка в другое место). + +🚀 **Источник: [https://learn.javascript.ru/async-iterators-generators](https://learn.javascript.ru/async-iterators-generators)** \ No newline at end of file diff --git a/docs/javascript/10-modules/01-modules.md b/docs/javascript/10-modules/01-modules.md index 2d48a92..2975fb7 100644 --- a/docs/javascript/10-modules/01-modules.md +++ b/docs/javascript/10-modules/01-modules.md @@ -36,4 +36,5 @@ sidebar_position: 1 - Если один и тот же модуль используется в нескольких местах, то его код выполнится только один раз, после чего экспортируемая функциональность передаётся всем импортёрам. - Объект import.meta содержит информацию о текущем модуле. Содержимое зависит от окружения. - В модуле на верхнем уровне this не определён (undefined). -- \ No newline at end of file + +🚀 **Источник: [https://learn.javascript.ru/modules-intro](https://learn.javascript.ru/modules-intro)** \ No newline at end of file diff --git a/docs/javascript/10-modules/02-import-export.md b/docs/javascript/10-modules/02-import-export.md index f7cef07..92e6163 100644 --- a/docs/javascript/10-modules/02-import-export.md +++ b/docs/javascript/10-modules/02-import-export.md @@ -3,8 +3,6 @@ sidebar_position: 2 --- # Экспорт и импорт -Источник: [https://learn.javascript.ru/import-export](https://learn.javascript.ru/import-export) - Вот все варианты export, которые мы разобрали в этой и предыдущей главах. Вы можете проверить себя, читая их и вспоминая, что они означают: @@ -32,3 +30,5 @@ sidebar_position: 2 Мы можем поставить import/export в начало или в конец скрипта, это не имеет значения. 💥 **Обратите внимание, что инструкции import/export не работают внутри `{...}`.** + +🚀 **Источник: [https://learn.javascript.ru/import-export](https://learn.javascript.ru/import-export)** \ No newline at end of file