Что такое контекст в функции ?
Контекст в функции определяет, как ссылка
Как работает this в разных ситуациях:
1. В глобальном контексте: Вне любой функции он ссылается на глобальный объект. В браузере это будет
2. Внутри функции:
- При обычном вызове функции он также ссылается на глобальный объект (в строгом режиме
- В методе объекта он ссылается на объект, для которого вызывается метод.
3. При использовании конструктора (с
4. При использовании
Примеры:
Глобальный контекст
Функция внутри объекта
В этом примере this внутри sayName ссылается на объект person.
Изменение контекста с bind()
Здесь мы явно задаем контекст для
Понимание его важно для эффективной работы с функциями и методами объектов, особенно когда требуется управление контекстом
👉 @seniorFront
Контекст в функции определяет, как ссылка
this будет доступна внутри этой функции. Он относится к объекту, в контексте которого выполняется текущий код, и может изменяться в зависимости от того, как и где вызывается функция.Как работает this в разных ситуациях:
1. В глобальном контексте: Вне любой функции он ссылается на глобальный объект. В браузере это будет
window, а в Node.js — global.2. Внутри функции:
- При обычном вызове функции он также ссылается на глобальный объект (в строгом режиме
this будет undefined, что предотвращает случайное изменение глобального объекта).- В методе объекта он ссылается на объект, для которого вызывается метод.
3. При использовании конструктора (с
new): Будет ссылаться на вновь созданный объект.4. При использовании
call(), apply(), bind(): Эти методы позволяют явно задать контекст для этой в функции.Примеры:
Глобальный контекст
console.log(this === window); // true в браузере
Функция внутри объекта
const person = {
name: 'Иван',
sayName: function() {
console.log(this.name);
}
};
person.sayName(); // Вывод: Иван
В этом примере this внутри sayName ссылается на объект person.
Изменение контекста с bind()
const person = {
name: 'Иван',
};
function sayName() {
console.log(this.name);
}
const sayNameForPerson = sayName.bind(person);
sayNameForPerson(); // Вывод: Иван
Здесь мы явно задаем контекст для
this с помощью bind(), чтобы функция sayName могла ссылаться на person.Понимание его важно для эффективной работы с функциями и методами объектов, особенно когда требуется управление контекстом
this. Оно позволяет более гибко использовать функции и методы в разных объектах, а также контролировать поведение программы более предсказуемым образом.👉 @seniorFront
👍10❤2👎2🔥2
Как айтишнику понять, на что он способен за пределами найма, вопреки безумным страхам и сомнениям
Есть люди, которые легко втягиваются в авантюры с бизнесом и собственными проектами. А есть мы — обычные люди, которым страшно пускаться в неизведанное. Конечно, можно и не пускаться, вот только лишь преодоление этого страха открывает нам настоящих себя и показывает на что мы способны, а выбор безопасного пути заставляет сожалеть о несделанном.
Перед вами история Кости Давиденко. Костя сеньор-разработчик в крупной корпорации: у него большая зарплата, возможность жить в любой точке мира, профессиональная востребованность. Словом, всё, кроме понимания, а чего он стоит без большой корпорации? На что он способен без привычных корпоративных рельсов, по которым безопасно катится жизнь?
👉 @seniorFront
Есть люди, которые легко втягиваются в авантюры с бизнесом и собственными проектами. А есть мы — обычные люди, которым страшно пускаться в неизведанное. Конечно, можно и не пускаться, вот только лишь преодоление этого страха открывает нам настоящих себя и показывает на что мы способны, а выбор безопасного пути заставляет сожалеть о несделанном.
Перед вами история Кости Давиденко. Костя сеньор-разработчик в крупной корпорации: у него большая зарплата, возможность жить в любой точке мира, профессиональная востребованность. Словом, всё, кроме понимания, а чего он стоит без большой корпорации? На что он способен без привычных корпоративных рельсов, по которым безопасно катится жизнь?
👉 @seniorFront
❤1👍1
Где взять энергию? Эпидемия выгорания айтишников
Многие ИТ‑компании в скрытой или активной форме пропагандируют переработки. Связано это и с высокой стоимость айтишников, и с низкой квалификацией проектных менеджеров, и с ошибками на стадии пресейла, и с авралами при выполнении госконтрактов — когда деньги в бюджете нужно потратить до конца календарного года. Всё это приводит к работе за экраном по 10–14 часов и полному отсутствию физической активности.
Недостаток физической активности снижает уровень кровообращения в организме, приводит к ухудшению питания мозга кислородом и питательными веществами, вызывает раздражительность, бессонницу, снижение работоспособности, быструю утомляемость.
Что делать?
Самый доступный спорт — это бег. Доступный не значит простой. Как в любом деле, в нем есть свои нюансы, и какие‑то знания приходят только с опытом. За четыре года любительских пробежек приобрел знания и опыт, новую фигуру. Сбросил лишний вес и улучшил социальный имидж. Цель этой статьи подсветить проблему и дать мотивацию к изменениям.
Что делать глобально?
Когда наша компания вышла из ковидных ограничений и перешла на гибридный формат работы, мы создали несколько любительских сообществ: спортивное, читающее, историческое. Идею поддержало руководство компании. Для него такие сообщества вообще находка: горизонтальные связи в компании, энергия и мотивация участников, потенциал для личностного развития. За несколько лет наши любительские сообщества выросли до сотен активных участников.
Как выйти на первую пробежку?
Правда жизни состоит в том, что для первой пробежки вам не нужны особые кроссовки или одежда. Нужно желание выйти и не спеша пробежать минут 10, перейти на шаг, восстановить дыхание и попробовать пробежать еще минут 5–10. Общее правило — бегите медленно. Чем меньше пульс и легче дыхание, тем лучше.
Как просто сформировать привычку бегать?
Всего два условия:
- регулярность — выходите на пробежку раз в два дня, этого вполне достаточно
- легкость — после пробежки у вас должно быть достаточно сил пробежать ещё минут 15.
Если каждую пробежку бежать на максимум — увеличивать темп, дистанцию, время тренировки, то организм точно придумает, как вас заставить недельку отдохнуть.
👉 @seniorFront
Многие ИТ‑компании в скрытой или активной форме пропагандируют переработки. Связано это и с высокой стоимость айтишников, и с низкой квалификацией проектных менеджеров, и с ошибками на стадии пресейла, и с авралами при выполнении госконтрактов — когда деньги в бюджете нужно потратить до конца календарного года. Всё это приводит к работе за экраном по 10–14 часов и полному отсутствию физической активности.
Недостаток физической активности снижает уровень кровообращения в организме, приводит к ухудшению питания мозга кислородом и питательными веществами, вызывает раздражительность, бессонницу, снижение работоспособности, быструю утомляемость.
Что делать?
Самый доступный спорт — это бег. Доступный не значит простой. Как в любом деле, в нем есть свои нюансы, и какие‑то знания приходят только с опытом. За четыре года любительских пробежек приобрел знания и опыт, новую фигуру. Сбросил лишний вес и улучшил социальный имидж. Цель этой статьи подсветить проблему и дать мотивацию к изменениям.
Что делать глобально?
Когда наша компания вышла из ковидных ограничений и перешла на гибридный формат работы, мы создали несколько любительских сообществ: спортивное, читающее, историческое. Идею поддержало руководство компании. Для него такие сообщества вообще находка: горизонтальные связи в компании, энергия и мотивация участников, потенциал для личностного развития. За несколько лет наши любительские сообщества выросли до сотен активных участников.
Как выйти на первую пробежку?
Правда жизни состоит в том, что для первой пробежки вам не нужны особые кроссовки или одежда. Нужно желание выйти и не спеша пробежать минут 10, перейти на шаг, восстановить дыхание и попробовать пробежать еще минут 5–10. Общее правило — бегите медленно. Чем меньше пульс и легче дыхание, тем лучше.
Как просто сформировать привычку бегать?
Всего два условия:
- регулярность — выходите на пробежку раз в два дня, этого вполне достаточно
- легкость — после пробежки у вас должно быть достаточно сил пробежать ещё минут 15.
Если каждую пробежку бежать на максимум — увеличивать темп, дистанцию, время тренировки, то организм точно придумает, как вас заставить недельку отдохнуть.
👉 @seniorFront
👍9👎2
This media is not supported in your browser
VIEW IN TELEGRAM
Interactive Polaroid Gallery
Генерация карточек и логика перемещения реализованы на чистом JS. Стилизовано в SCSS.
👉 @seniorFront
Генерация карточек и логика перемещения реализованы на чистом JS. Стилизовано в SCSS.
👉 @seniorFront
❤7👍1
Media is too big
VIEW IN TELEGRAM
Triangle Shape Checkbox Button
В этом видео создаётся оригинальная кнопка-переключатель на HTML и CSS.
👉 @seniorFront
В этом видео создаётся оригинальная кнопка-переключатель на HTML и CSS.
👉 @seniorFront
⚡️ Прими участие в хакатоне MORE.Tech от ВТБ!
Когда: 11-26 октября 2024
Формат: гибридный (онлайн и офлайн)
Призовой фонд: 1,5 млн рублей
🔥 Хакатон подойдёт для тебя, если ты:
– Студент или выпускник технического вуза;
– Backend / Frontend-разработчик;
– Аналитик;
– Проектный менеджер;
– UX/UI-дизайнер;
– Блокчейн-разработчик (Solidity);
– Специалист в области ИБ.
❗️Выбери свой трек:
1. Озеро данных: большие данные, обработка, хранение и анализ с использованием современных технологий.
2. NFT: система верифицированных достижений и сертификатов на основе блокчейн-токенов.
3. Vault: разработка безопасной системы хранения данных, аналог известного решения Vault от Hashicorp.
🔹 На MORE.Tech ты сможешь решить реальные финтех-кейсы и прокачать свои навыки!
▶️ Регистрация уже открыта! Подай заявку до 19 октября, 23:59 МСК по ссылке.
#реклама
О рекламодателе
Когда: 11-26 октября 2024
Формат: гибридный (онлайн и офлайн)
Призовой фонд: 1,5 млн рублей
🔥 Хакатон подойдёт для тебя, если ты:
– Студент или выпускник технического вуза;
– Backend / Frontend-разработчик;
– Аналитик;
– Проектный менеджер;
– UX/UI-дизайнер;
– Блокчейн-разработчик (Solidity);
– Специалист в области ИБ.
❗️Выбери свой трек:
1. Озеро данных: большие данные, обработка, хранение и анализ с использованием современных технологий.
2. NFT: система верифицированных достижений и сертификатов на основе блокчейн-токенов.
3. Vault: разработка безопасной системы хранения данных, аналог известного решения Vault от Hashicorp.
🔹 На MORE.Tech ты сможешь решить реальные финтех-кейсы и прокачать свои навыки!
▶️ Регистрация уже открыта! Подай заявку до 19 октября, 23:59 МСК по ссылке.
#реклама
О рекламодателе
👎3❤1
This media is not supported in your browser
VIEW IN TELEGRAM
Emotion
Создано и анимировано на HTML и CSS. Взаимодействие с курсором пользователя реализовано при помощи библиотеки kicss.js
👉 @seniorFront
Создано и анимировано на HTML и CSS. Взаимодействие с курсором пользователя реализовано при помощи библиотеки kicss.js
👉 @seniorFront
👍9
Какая из следующих функций НЕ является функцией сборщика?
Anonymous Quiz
9%
Управление зависимостями
58%
Генерация случайных чисел
9%
Оптимизация производительности
11%
Транспиляция кода
13%
Автоматизация рутинных задач
This media is not supported in your browser
VIEW IN TELEGRAM
Button Ripple Effect
В этом видео создаётся эффект волны при клике на кнопку. Анимация реализована в CSS. Запуск анимации осуществляется в JS.
👉 @seniorFront
В этом видео создаётся эффект волны при клике на кнопку. Анимация реализована в CSS. Запуск анимации осуществляется в JS.
👉 @seniorFront
🔥5
This media is not supported in your browser
VIEW IN TELEGRAM
Collection of animated loaders
Подборка анимированных загрузчиков, реализованных на HTML и SCSS.
👉 @seniorFront
Подборка анимированных загрузчиков, реализованных на HTML и SCSS.
👉 @seniorFront
👍8❤1
Найдите гласные
Мы хотим узнать индекс гласных в заданном слове, например, в слове super есть две гласные (вторая и четвертая буквы).
Пример:
👉 @seniorFront
Мы хотим узнать индекс гласных в заданном слове, например, в слове super есть две гласные (вторая и четвертая буквы).
Пример:
Mmmm => []
Super => [2,4]
Apple => [1,5]
YoMama -> [1,2,4,6]
👉 @seniorFront
👍5
Что нового в React 19
React 19 на подходе. Команда React анонсировала предрелизную версию React 19 в апреле. Это крупное обновление принесет с собой ряд улучшений и новых паттернов, нацеленных на повышение производительности, удобство использования и опыта разработки.
Многие из этих возможностей были представлены в экспериментальном режиме в React 18, но в React 19 они станут стабильными. Давайте подготовимся к этому обновлению.
👉 @seniorFront
React 19 на подходе. Команда React анонсировала предрелизную версию React 19 в апреле. Это крупное обновление принесет с собой ряд улучшений и новых паттернов, нацеленных на повышение производительности, удобство использования и опыта разработки.
Многие из этих возможностей были представлены в экспериментальном режиме в React 18, но в React 19 они станут стабильными. Давайте подготовимся к этому обновлению.
👉 @seniorFront
👍2
.isSupersetOf()
Метод isSupersetOf() сравнивает текущую коллекцию с другой и возвращает true, если текущая коллекция включает в себя все элементы другой коллекции, и false — если нет.
Пример
У Софии и Надежды большие личные библиотеки. София хочет доказать, что её коллекция включает все романы Набокова, которые есть в коллекции Надежды. В этом ей поможет метод isSupersetOf().
У нас есть два массива строк. Определим, входят ли все элементы второго массива также в первый. Для решения задачи создадим Set-объекты из массивов и сравним их, используя метод isSupersetOf():
Сравнение коллекций — часто встречающаяся задача. Метод isSupersetOf() упрощает её решение и избавляет от необходимости писать код обхода и сравнения.
Не путайте метод isSupersetOf() с методом isSubsetOf(), который решает обратную задачу и проверяет, что все элементы текущей коллекции содержатся в другой. Поддержка isSupersetOf() в основных браузерах и в Node.js появилась в 2024 году. Если попробуете использовать метод в более ранних версиях, получите ошибку.
👉 @seniorFront
Метод isSupersetOf() сравнивает текущую коллекцию с другой и возвращает true, если текущая коллекция включает в себя все элементы другой коллекции, и false — если нет.
Пример
У Софии и Надежды большие личные библиотеки. София хочет доказать, что её коллекция включает все романы Набокова, которые есть в коллекции Надежды. В этом ей поможет метод isSupersetOf().
У нас есть два массива строк. Определим, входят ли все элементы второго массива также в первый. Для решения задачи создадим Set-объекты из массивов и сравним их, используя метод isSupersetOf():
const booksOfSonya = [ 'Дар', 'Подвиг', 'Защита Лужина', 'Отчаяние' ]
const booksOfNadya = [ 'Подвиг', 'Защита Лужина', 'Дар' ]
const set1 = new Set(booksOfSonya)
const set2 = new Set(booksOfNadya)
console.log(set1.isSupersetOf(set2))
// true
console.log(set2.isSupersetOf(set1))
// false
Сравнение коллекций — часто встречающаяся задача. Метод isSupersetOf() упрощает её решение и избавляет от необходимости писать код обхода и сравнения.
Не путайте метод isSupersetOf() с методом isSubsetOf(), который решает обратную задачу и проверяет, что все элементы текущей коллекции содержатся в другой. Поддержка isSupersetOf() в основных браузерах и в Node.js появилась в 2024 году. Если попробуете использовать метод в более ранних версиях, получите ошибку.
👉 @seniorFront
👍12❤1
Почему все неправы в споре «Стартап или бизнес»?
Если попробовать найти определение что такое стартап, а что такое бизнес в интернете, то можно совершенно и полностью запутаться. Начнем с того, что главной характеристикой стартапа все будут выделять разное, кто‑то скажет, что стартап должен быть технологичным, кто‑то скажет, что обязательно нужно быть убыточным, а кто‑то что нельзя быть стартапом долго, так как только новая компания — стартап. Но все эти определения неверны и им можно показать огромное количество примеров, опровергающих эти доводы:
- Новый? Udemy и AirBnb искали ProductMarketFit (Состояние продукта достойное рынка, считается что начинать продажи стоит только при его достижении) более 2-х лет, а Roblox заявляют почти о 10-ти годах.
- Технологичный? Скажите это стартапу, который придумал добавить кармашек на кросовки, чтобы во время бега не носить ключи (оборот 158 млн), а также Российскому «Бери заряд!», который сдает павербанки в аренду. Там нет сложных технологий, но это стартапы.
- Убыточный? Startupplanner стали прибыльными на 2-й месяц, при продаже второго заказа. Или Zappos, который торговал обувью сразу в прибыль, не сразу но достаточно быстро стал прибыльным и GitHub — сервис для управления версионностью программного кода.
- Маленький? На своем старте Tesla сразу нанимала сотни сотрудников, как и стриминговый сервис Quibi, стартовал с инвестициями в 1,75 миллиарда и несколькими сотнями сотрудников.
Что же тогда отличает стартап от бизнеса? Отсутствие рабочей бизнес-модели.
Стартап — это временная организация по поиску работающей бизнес‑модели. Когда вы придумали новую бизнес‑модель и нет уверенности, что это все будет работать, то это стартап. Как только вы ее проверили и поняли, что это рабочая схема — вы бизнес. Граница между стартапом и бизнесом весьма размыта, но это все равно самое точное и верное определение из всех доступных.
👉 @seniorFront
Если попробовать найти определение что такое стартап, а что такое бизнес в интернете, то можно совершенно и полностью запутаться. Начнем с того, что главной характеристикой стартапа все будут выделять разное, кто‑то скажет, что стартап должен быть технологичным, кто‑то скажет, что обязательно нужно быть убыточным, а кто‑то что нельзя быть стартапом долго, так как только новая компания — стартап. Но все эти определения неверны и им можно показать огромное количество примеров, опровергающих эти доводы:
- Новый? Udemy и AirBnb искали ProductMarketFit (Состояние продукта достойное рынка, считается что начинать продажи стоит только при его достижении) более 2-х лет, а Roblox заявляют почти о 10-ти годах.
- Технологичный? Скажите это стартапу, который придумал добавить кармашек на кросовки, чтобы во время бега не носить ключи (оборот 158 млн), а также Российскому «Бери заряд!», который сдает павербанки в аренду. Там нет сложных технологий, но это стартапы.
- Убыточный? Startupplanner стали прибыльными на 2-й месяц, при продаже второго заказа. Или Zappos, который торговал обувью сразу в прибыль, не сразу но достаточно быстро стал прибыльным и GitHub — сервис для управления версионностью программного кода.
- Маленький? На своем старте Tesla сразу нанимала сотни сотрудников, как и стриминговый сервис Quibi, стартовал с инвестициями в 1,75 миллиарда и несколькими сотнями сотрудников.
Что же тогда отличает стартап от бизнеса? Отсутствие рабочей бизнес-модели.
Стартап — это временная организация по поиску работающей бизнес‑модели. Когда вы придумали новую бизнес‑модель и нет уверенности, что это все будет работать, то это стартап. Как только вы ее проверили и поняли, что это рабочая схема — вы бизнес. Граница между стартапом и бизнесом весьма размыта, но это все равно самое точное и верное определение из всех доступных.
👉 @seniorFront
👎5👍4❤2
Как понять продукт и зачем это нужно разработчику
Если вы не понимаете бизнес своей компании, вы не сможете полностью реализовать свои технические навыки. Крутой технарь на позиции СТО, который знает нюансы TOGAF и отличия Raft от Paxos — это хорошо, но мало. Вы должны принимать решения не только исходя из технических деталей задачи, но и с учётом реалий бизнеса, его потребностей и направления развития.
В этой статье СТО компании рассказывает, почему понимание бизнеса так важно для ИТ-менеджеров, тимлидов и архитекторов, и как оно влияет на принятие технических решений и развитие карьеры.
👉 @seniorFront
Если вы не понимаете бизнес своей компании, вы не сможете полностью реализовать свои технические навыки. Крутой технарь на позиции СТО, который знает нюансы TOGAF и отличия Raft от Paxos — это хорошо, но мало. Вы должны принимать решения не только исходя из технических деталей задачи, но и с учётом реалий бизнеса, его потребностей и направления развития.
В этой статье СТО компании рассказывает, почему понимание бизнеса так важно для ИТ-менеджеров, тимлидов и архитекторов, и как оно влияет на принятие технических решений и развитие карьеры.
👉 @seniorFront
👍4
Какой он, отличный день для Frontend-разработчиков? 🤔
21 сентября на A?.Frontend Day мы вместе с сотней IT-специалистов создали именно такую атмосферу! Офлайн в Москве и онлайн это событие собрало тех, кто готов делиться опытом и узнавать новое.
🌟 Что было:
— Вадим Царегородцев из Ostrovok.ᅠru представил Valibot — инновационный инструмент для гибкой и безопасной валидации данных в JavaScript.
— Сергей Попов из Skillbox раскрыл методы преодоления проблем внедрения изменений в компаниях.
— Никита Мамизеров рассказал о сложностях и успехах внедрения BDUI в Альфа-Онлайн.
— Никита Ульшин из Т-Банка поделился паттернами отказоустойчивости, помогающими минимизировать риски.
— Андрей Смирнов из X5 Tech рассмотрел карьерные ловушки для тимлидов и объяснил, как их избежать.
— Евгений Смирнов из Альфа-Банка провёл дискуссию о том, как ИИ и Copilot меняют разработку и что ждёт программирование в будущем.
И это только часть того, что происходило на A?.Frontend Day! А ещё были квизы, розыгрыши подарков и афтепати с нетворкингом.
Хотите увидеть, как это было? Переходите по ссылке и смотрите подробный отчёт с мероприятия!❤️
21 сентября на A?.Frontend Day мы вместе с сотней IT-специалистов создали именно такую атмосферу! Офлайн в Москве и онлайн это событие собрало тех, кто готов делиться опытом и узнавать новое.
🌟 Что было:
— Вадим Царегородцев из Ostrovok.ᅠru представил Valibot — инновационный инструмент для гибкой и безопасной валидации данных в JavaScript.
— Сергей Попов из Skillbox раскрыл методы преодоления проблем внедрения изменений в компаниях.
— Никита Мамизеров рассказал о сложностях и успехах внедрения BDUI в Альфа-Онлайн.
— Никита Ульшин из Т-Банка поделился паттернами отказоустойчивости, помогающими минимизировать риски.
— Андрей Смирнов из X5 Tech рассмотрел карьерные ловушки для тимлидов и объяснил, как их избежать.
— Евгений Смирнов из Альфа-Банка провёл дискуссию о том, как ИИ и Copilot меняют разработку и что ждёт программирование в будущем.
И это только часть того, что происходило на A?.Frontend Day! А ещё были квизы, розыгрыши подарков и афтепати с нетворкингом.
Хотите увидеть, как это было? Переходите по ссылке и смотрите подробный отчёт с мероприятия!
Please open Telegram to view this post
VIEW IN TELEGRAM
👎3👍2🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Scroll-driven animated card stack with scroll snap events.
Свёрстано на HTML и SCSS. Переключение реализовано при помощи события "scrollsnapchange".
👉 @seniorFront
Свёрстано на HTML и SCSS. Переключение реализовано при помощи события "scrollsnapchange".
👉 @seniorFront
👍14🔥4