Синхронный код выполняется последовательно, каждая операция ожидает завершения предыдущей. Это блокирующий подход, где длительные задачи могут задерживать выполнение последующих операций.
console.log('First');
console.log('Second'); // Выполнится только после завершения первой строки
Асинхронный код позволяет выполнять задачи без блокировки основного потока. Операции могут быть отложены и завершены позже, что особенно полезно для работы с сетью, файлами или таймерами.
console.log('First');
setTimeout(() => console.log('Second'), 1000); // Выполнится через 1 секунду, не блокируя поток
console.log('Third'); // Выполнится сразу после 'First'
Асинхронность достигается через колбэки, промисы и async/await, что делает код более эффективным для задач с ожиданием.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤2
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤1
async/await. Промисы позволяют организовать асинхронный код в цепочку, а async/await делает его более читаемым, похожим на синхронный.
// С промисами
fetchData()
.then(response => processData(response))
.then(result => saveData(result))
.catch(error => console.error(error));
// С async/await
async function handleData() {
try {
const response = await fetchData();
const result = await processData(response);
await saveData(result);
} catch (error) {
console.error(error);
}
}
Также можно разбивать код на отдельные функции, чтобы избежать вложенности. Это улучшает читаемость и поддерживаемость.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤1
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4💯4
<noscript> с атрибутом src. Этот тег обычно размещается внутри <head> или перед закрывающим тегом </body>.
<noscript src="path/to/noscript.js"></noscript>
Атрибут
src указывает путь к файлу скрипта. Если файл находится в той же папке, что и HTML-документ, достаточно указать имя файла. Для файлов в других папках или на внешних ресурсах используется полный или относительный путь.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🤩2
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Math.round() округляет число до ближайшего целого. Если дробная часть числа больше или равна 0.5, число округляется вверх, иначе — вниз.
const num1 = 3.7;
const num2 = 3.2;
console.log(Math.round(num1)); // 4
console.log(Math.round(num2)); // 3
Для отрицательных чисел правило аналогично:
-3.7 округляется до -4, а -3.2 до -3. Метод всегда возвращает целое число, удаляя дробную часть.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤1
concat используется для объединения массивов или добавления элементов в конец массива. Он не изменяет исходный массив, а возвращает новый массив, содержащий результат объединения.
const arr1 = [1, 2];
const arr2 = [3, 4];
const result = arr1.concat(arr2); // [1, 2, 3, 4]
Метод может принимать несколько аргументов, включая массивы или отдельные элементы.
const arr = [1];
const newArr = arr.concat(2, [3, 4]); // [1, 2, 3, 4]
Этот метод полезен, когда требуется создать новый массив без изменения исходных данных.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤1
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤1
setInterval, можно остановить с помощью функции clearInterval, передав ей идентификатор, возвращенный setInterval. Это позволяет прервать выполнение циклического вызова функции.
const intervalId = setInterval(() => {
console.log("Tick");
}, 1000);
clearInterval(intervalId); // Остановка таймера
Идентификатор
intervalId сохраняется при создании таймера и используется для его остановки. Без вызова clearInterval таймер будет выполняться бесконечно.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤1
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
localStorage.setItem('key', 'value'); // Сохранение данных
const data = localStorage.getItem('key'); // Получение данных
Оба хранилища доступны только в рамках одного источника (протокол, домен, порт) и поддерживают только строковые данные. Для работы с объектами необходимо использовать JSON.stringify и JSON.parse.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤1
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
var, hoisting поднимает только объявление, но не инициализацию, что может привести к undefined.
console.log(x); // undefined, так как объявление поднято, но не значение
var x = 5;
foo(); // "Hello", функция поднята полностью
function foo() {
console.log("Hello");
}
Для
let и const hoisting также происходит, но доступ к переменным до объявления вызывает ошибку.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤1
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4❤1
Добавить свойство в объект можно несколькими способами. Через точечную нотацию:
const obj = {};
obj.name = "John"; // Добавление свойства name
Или через квадратные скобки:
obj["age"] = 30; // Добавление свойства age
Также свойства можно добавить при создании объекта:
const obj = { name: "John", age: 30 };
Эти способы позволяют динамически изменять структуру объекта.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤1
Функция
Number() преобразует строку в число, включая числа с плавающей точкой:
const num = Number("42"); // 42
Метод
parseInt() преобразует строку в целое число, игнорируя нечисловые символы:
const int = parseInt("42px"); // 42
Метод
parseFloat() преобразует строку в число с плавающей точкой:
const float = parseFloat("42.5"); // 42.5
Также можно использовать унарный оператор
+:
const num = +"42"; // 42
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
event.stopPropagation() останавливает всплытие события по DOM-дереву, предотвращая его обработку родительскими элементами.
document.querySelector('a').addEventListener('click', function(event) {
event.preventDefault(); // Отменяет переход по ссылке
event.stopPropagation(); // Останавливает всплытие
});
Эти методы полезны для управления поведением событий и предотвращения нежелательных действий.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
const element = document.getElementById('example');
element.textContent = 'Hello, DOM!';
DOM позволяет изменять структуру, стили и содержимое документа динамически с помощью JavaScript. Это основа для интерактивных веб-приложений.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
Promise.all также завершится с ошибкой.
Promise.all([promise1, promise2])
.then(results => console.log(results));
Promise.race возвращает промис, который завершается, как только завершается первый промис из массива, независимо от его результата (успех или ошибка).
Promise.race([promise1, promise2])
.then(result => console.log(result));
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6