Принципы SOLID играют ключевую роль в разработке программного обеспечения, обеспечивая создание масштабируемого, устойчивого и легко поддерживаемого кода.
Эти принципы служат фундаментом для написания чистого кода, помогая разработчикам избегать часто встречающихся проблем в проектировании и структурировании программ.
Соблюдение принципов SOLID способствует гибкости, эффективности и повторному использованию кода, что в свою очередь ведет к сокращению времени и ресурсов, необходимых для разработки и поддержки программных продуктов.
Промис создаётся с использованием конструктора Promise, который принимает один аргумент — функцию с двумя параметрами: resolve и reject. Функция resolve вызывается, когда асинхронная операция завершается успешно, а функция reject — когда происходит ошибка.
Для обработки промиса используются методы then, catch и finally.
✅ then принимает функцию, которая будет вызвана, если промис выполнится успешно. ❌ catch принимает функцию, которая будет вызвана, если промис будет отклонён. 🏁 finally принимает функцию, которая будет вызвана в любом случае, независимо от того, был ли промис выполнен или отклонён.
Промисы в JavaScript представляют собой объекты, которые предоставляют возможность работать с асинхронными операциями более удобным способом, чем это делается с использованием callback-функций. Промисы могут находиться в одном из трёх состояний:
🟡 Pending (ожидание): начальное состояние промиса, не выполнен и не отклонён.
🟢 Fulfilled (выполнено): операция завершилась успешно, промис выполнен.
🔴 Rejected (отклонено): произошла ошибка, промис отклонён.
Промисы используются для более удобной организации асинхронного кода, такого как работа с API, таймерами или другими операциями, которые не выполняются мгновенно.
Привет, сделал разбор вопросов к собеседованиям по HTML. Записал небольшое видео. Говорю в пол голоса из-за эхо в комнате, пока ее не заставили мебелью😄
Вообще собеседования - это большая тема. Когда я провожу собесы, я стараюсь больше спросить про опыт, про проекты. Задаю лайтовые вопросы. Но бывают прогеры с 2мя годами опыта, которые собесят сеньоров 6+ и душнят так, как-будто они лично JavasScript изобрели и со школы прогеры. Везде своих чсв хватает😅
В первом примере используется обычная функция, и this внутри setInterval не ссылается на экземпляр Person. По умолчанию (в строгом режиме) this будет undefined, а в нестрогом — глобальный объект. Поскольку undefined не имеет свойства age, попытка инкрементировать его приведет к NaN
Во втором примере используется стрелочная функция, которая не имеет собственного this. Она "позаимствует" его из окружающего контекста, в данном случае из функции-конструктора Person. Это означает, что this.age будет корректно инкрементироваться каждую секунду, и в консоль будет выводиться возраст Person, который увеличивается на 1 каждую секунду.
Синтаксис: Обычные функции имеют более развернутый синтаксис. Они могут быть объявлены с использованием ключевого слова function.
function greet(name) { return "Hello, " + name + "!"; }
Контекст this: У обычных функций свой собственный контекст this. Это может вызвать проблемы с потерей контекста.
Использование: Они обычно используются, когда нужно создать метод объекта или конструктор.
Стрелочные функции
Синтаксис: Стрелочные функции имеют более короткий, сжатый синтаксис. Они объявляются с использованием символа "стрелки" =>.
const greet = (name) => "Hello, " + name + "!";
Контекст this: Стрелочные функции не имеют собственного контекста this. Они захватывают его из об surrounding кода, что делает их удобными для работы с контекстом.
Использование: Они идеально подходят для коротких функций и методов, где контекст this должен оставаться неизменным.
ОСНОВНЫЕ РАЗЛИЧИЯ
Синтаксис: Стрелочные функции более лаконичные. Контекст this: Обычные функции имеют свой this, в то время как стрелочные функции наследуют this от surrounding кода. Конструкторы: Стрелочные функции не могут быть использованы как конструкторы и вызваны с использованием new. Arguments объект: Обычные функции имеют arguments объект, но стрелочные функции его не имеют.