Как разработчик JavaScript, я уверен, что вы хорошо осведомлены о «радости» подъема. Но если вам нужно напомнить, подъем — это поведение в JavaScript, при котором переменные и функции автоматически перемещаются в верхнюю часть своей области видимости перед выполнением кода.

Теперь некоторые могут возразить, что подъем — это полезная функция, позволяющая нам ссылаться на переменные и функции до того, как они фактически будут объявлены в нашем коде. Но давайте будем реалистами: минусы намного перевешивают плюсы, когда дело доходит до этой «функции».

Одна из основных проблем с подъемом заключается в том, что он может сбивать с толку новых разработчиков. Когда вы учитесь программировать, важно иметь четкое представление о концепциях и принципах, с которыми вы работаете. Поднятие идет вразрез с некоторыми фундаментальными правилами программирования, такими как идея о том, что объявления должны предшествовать использованию и что переменные должны быть инициализированы до их использования. Это может привести к путанице и усложнить для новых разработчиков понимание того, что происходит в их коде.

Но даже для опытных разработчиков подъем может быть неприятностью. Достаточно сложно отслеживать все переменные и функции в вашем коде, не говоря уже о том, чтобы беспокоиться об их размещении по отношению к подъему. Это может привести к потере времени и разочарованию, поскольку вы пытаетесь отладить свой код и выяснить, почему он не работает должным образом.

Помимо того, что это сбивает с толку и разочаровывает, подъем еще и непоследовательный. Как упоминалось ранее, он ведет себя по-разному в зависимости от того, используете ли вы строгий режим или нет. Это означает, что вы должны быть особенно осторожны с тем, как вы используете подъем, и вам, возможно, придется изменить свой код в зависимости от того, используете ли вы строгий режим или нет. Это добавляет еще один уровень сложности к и без того запутанной концепции и может затруднить написание надежного и предсказуемого кода.

Наконец, стоит отметить, что предполагаемые «плюсы» подъема действительно минимальны. Да, это позволяет нам ссылаться на переменные и функции до того, как они будут объявлены в нашем коде, но так ли это полезно? В большинстве случаев гораздо понятнее и легче читать код, если объявления делаются до их использования. Это помогает избежать путаницы и облегчает понимание того, что происходит в коде.

Итак, в заключение, подъем — это сбивающий с толку и разочаровывающий аспект JavaScript, который не имеет большого смысла и только усложняет нашу жизнь как разработчиков. Конечно, это может иметь несколько незначительных преимуществ, но недостатки значительно перевешивают их. Спасибо за ничего, подъем.

В каком-то смысле вы строите свой собственный лабиринт и можете просто заблудиться в нем.
― Марин Хавербеке, Eloquent JavaScript: A Modern Introduction to Programming

Дополнительные материалы на PlainEnglish.io. Подпишитесь на нашу бесплатную еженедельную рассылку новостей. Подпишитесь на нас в Twitter, LinkedIn, YouTube и Discord .

Заинтересованы в масштабировании запуска вашего программного обеспечения? Ознакомьтесь с разделом Схема.