Найти в Дзене
Рекурсия для чайников
Вы когда-нибудь смотрели в зеркало, которое стоит напротив другого зеркала? Там бесконечная глубина - отражение отражения отражения. Вот это и есть рекурсия. Только в программировании мы обычно не хотим бесконечности (иначе сервер упадет). Мы хотим, чтобы функция углублялась ровно столько раз, сколько нужно, а потом аккуратно возвращалась обратно - как матрешка, которая раскрывается до последней куклы, а затем собирается снова. Прежде чем писать код, ответьте себе на три вопроса (они спасут от stack overflow): Если эти три пункта есть - рекурсия безопасна...
153 читали · 1 месяц назад
Big O нотация на пальцах: Почему ваш код — это велосипед, а не ракета
Big O нотация на пальцах: Почему ваш код - это велосипед, а не ракета Представьте, что вы пришли на кухню. Вам нужно пожарить 10 котлет. На сковороду влезает только 2 штуки, а время жарки одной стороны - 5 минут. Как бы вы ни крутили, вы потратите одно и то же время. А теперь представьте, что котлет 1000. Или миллион. Вот тут-то и появляется главный вопрос программиста: Как изменится время работы, если данных станет сильно больше? Этот вопрос и решает Big O нотация (читается «О большое»). Это не магия, это просто способ сказать: «Слушай, когда у меня будет миллион пользователей, этот код ляжет...
173 читали · 1 месяц назад
Язык JavaScript - Флаги и дескрипторы свойств
Вы думаете, что свойство объекта - это просто пара "ключ-значение"? Что ж, это только верхушка айсберга. Под поверхностью скрывается целый мир: флаги, которые определяют, можно ли свойство изменять, перечислять или удалять. Дескрипторы, которые позволяют создавать вычисляемые свойства с геттерами и сеттерами. В JavaScript каждое свойство объекта - это не просто значение. Это структура с тремя скрытыми флагами и, возможно, функциями доступа. Понимание этой системы открывает двери к продвинутому метапрограммированию, созданию неизменяемых объектов и тонкому контролю над API...
211 читали · 2 месяца назад
Язык JavaScript - Повторяем стрелочные функции
Когда в 2015 году в JavaScript появились стрелочные функции, многие вздохнули с облегчением. Наконец-то можно писать короткие колбэки без function и return. Наконец-то this перестал быть проклятием. Наконец-то код стал красивее. Но, как у любой суперсилы, у стрелочных функций есть тёмная сторона. Они не везде подходят. Они ведут себя иначе. И если не понять эти различия, стрелка может выстрелить мимо цели. Сегодня мы повторим всё, что нужно знать о стрелочных функциях: от синтаксиса до подводных камней, от идеальных сценариев до тех мест, где они категорически не подходят...
202 читали · 2 месяца назад
Язык JavaScript - Привязка контекста к функции
Вы когда-нибудь теряли ключи в собственной квартире? Вроде только что держали в руках, а через секунду - исчезли. И вы ходите, ищете, а они лежат на самом видном месте, просто вы смотрели не туда. С this в JavaScript та же история. Вы только что им пользовались, всё работало. А потом передали метод в колбэк - и this потерялся. И вы ищете, отлаживаете, добавляете console.log, а проблема в том, что функция забыла, кому она принадлежит. Сегодня мы разберёмся, почему this теряется, как его привязать намертво и какие есть способы зафиксировать контекст...
209 читали · 2 месяца назад
Если нравится — подпишитесь
Так вы не пропустите новые публикации этого канала