Страницы

Поиск по вопросам

понедельник, 26 ноября 2018 г.

Что использовать var или let

Вот думаю что лучше использовать внутри функций, var или let?
Так как я использую компиляцию TypeScript то с поддержкой старых браузеров проблемы быть не должно в обоих вариантах.
Как я понял let более предпочтительный, так как он полностью локален в блоках и более предсказуем.
Но меня смущает использование let в циклах, так как для каждой итерации создаётся своя переменная. Зачем это делается я знаю, но беспокоюсь за съедание лишней памяти. Или это такая мелочь для большинства задач, что на эту тему париться не стоит? Ответы прошу аргументированные.
PS: это не дубликат вопроса "Отличие let/const от var" потому что тот вопрос про конкретную ошибку в коде, а мой вопрос теоретический и более общий про использование данных конструкций. Кроме того я не спрашиваю про отличая, их я знаю, меня интересует что предпочтительнее использовать.


Ответ

Напишу свой взгляд на let и var
Конечно, let - некий "новый синтаксический сахар". С ним могут возникать проблемы совместимости, но если это для вас не особо важно, то я бы использовал именно let. Мои аргументы:
Приведенная выше конструкция мне кажется просто ужасной:
if (true) { var a = 2; }
a = a + 2;
В основном, с точки зрения читаемости. Человек, читающий ваш код, может часами искать объявление этой переменной. А раз эта конструкция ужасна, то единственное преимущество var - фигня. Что касается циклов. Конечно, создается новая переменная... Но тогда, когда эта переменная уже не нужна, любой нормальный GC ее соберет. С той же var если вам нужно было сделать коллбэки в цикле, нужно было использовать дополнительную функцию, чтобы создать копию переменной. Что еще хуже.
Ну, пока что это все, что приходит на ум, но мне кажется, что этих причин достаточно. Единственное, на что вам нужно смотреть при выборе let или var - могут ли быть проблемы с совместимостью. Если нет - то смело используйте let

Комментариев нет:

Отправить комментарий