Основная причина, по которой я предпочитаю const, а не let по умолчанию, заключается в предотвращении случайного повторного назначения. Если переменная будет переназначена, я хочу хорошенько подумать об этом, чтобы убедиться, что это то, чего я действительно хочу. Почти всегда переназначение (повторное связывание) — это не то, что мне нужно, поэтому мой код на 95% состоит из констант и только на 5% из них.
Для меня это соображение (предотвращение нежелательного повторного назначения) значительно перевешивает различные аргументы против постоянной константы, но я привожу их здесь для более полного анализа.
Аргументы против постоянной константы (и почему они терпят неудачу)
Аргумент, что Constantly Const поощряет многословие. Учитывать:
Связанным является аргумент, что «const» имеет длину 5, а «let» имеет длину 3, поэтому let предпочтительнее. Не думаю, что это требует большого анализа. :)
Также связанный аргумент, который let полезен, даже если переменная не будет переназначена:
Аргумент, что Constantly Const вводит программиста в заблуждение, заставляя его думать, что свойства объекта (или элементы массива) также являются константами. Учитывать:
Аргумент о том, что Constantly Const заставляет вас реорганизовать свой код при внесении простого изменения. Учитывать:
Вам нравится эта статья? Хотите, чтобы я написал больше, как это? Дай мне знать.
Использованная литература:
Про «Либерал Лет»:
Мэтью Бил: https://madhatted.com/2016/1/25/let-it-be
Джейми Билдс: https://jamie.build/const
Плюс «Постоянно Постоянный»:
Петр Мионсковски: https://dev.to/brightdevs/typescript-tips-from-kotlin-developer---const-jde
Эрик Эллиотт: https://medium.com/javascript-scene/javascript-es6-var-let-or-const-ba58b8dcde75
Матиас Байненс: https://mathiasbynens.be/notes/es6-const
Макс Хейбер: https://medium.com/@maxheiber/es2015-const-has-something-to-do-with-mutation-227852c010df
Николас С. Закас: https://leanpub.com/understandinges6/read/#leanpub-auto-summary
Аксель Раушмайер: http://exploringjs.com/es6/ch_variables.html#const-vs-let-vs-var
Николас Бевакуа: https://ponyfoo.com/articles/var-let-const