Например, в этом видео Redux инструктор всегда использует такой синтаксис, как
const counter = (state=0, action) => {
... function body here
}
где я бы просто использовал «традиционный»
function counter(state=0, action) {
... function body here
}
Что на самом деле короче и, ИМО, понятнее. Проще отсканировать достаточно ровный и структурированный левый край страницы на наличие слова «функция», чем отсканировать рваный правый край на предмет небольшого «=>».
Кроме того this
, пытаясь быть объективным, а не мнением, есть ли какое-то полезное отличие или преимущество в новомодном синтаксисе?
javascript
functions
es6
user949300
источник
источник
const
помогает гарантировать, что функция не будет переопределена позже.Ответы:
Операторы функций (именованные функции, показанный 2-й синтаксис) поднимаются до вершины полной лексической области, даже за произвольными и управляющими блоками, как
if
операторы. Использованиеconst
(напримерlet
) для объявления переменной дает ей область видимости блока, останавливает полное поднятие (поднятие до простого блока) и гарантирует, что она не может быть повторно объявлена.При объединении сценариев вместе или в некоторых, использующих другие инструменты создания пакетов, подъем функций может нарушать конфликтующие сценарии способами, которые трудно отладить, так как они молча завершаются неудачей. Повторно объявленный
const
вызовет исключение, прежде чем программа сможет работать, так что отладка будет намного проще.источник
const
. IMO, это немного недальновидно, чтобы начать использовать егоconst
повсюду по этой причине в возрасте eslint, webpack, babel и так далее. Никто больше не объединяет файлы вручную, по крайней мере, уже десять лет.Вот почему вы должны использовать
function
:Сигнализация четкая и лаконичная. Это гораздо более выгодно, чем любая из проблем подъема краевого случая, которые перечислены в другом ответе.
Вы действительно хотите подняться внутри модулей, потому что, как вы можете видеть из приведенного ниже кода,
const
объявлениеtryDoTheThing
сбой молча и не будет перехвачено, пока вы не попытаетесь вызвать его.Большинство юниоров, с которыми я сталкиваюсь, начинают использовать
const
для объявления каждой функции, потому что это прихоть прямо сейчас, например, использовать пробелы над вкладками или делать все,functional!!!
потому что «ООП плох». Не делай этого. Вы не хотите быть тем парнем, который следует за причудами, не понимая полностью их значения.против
источник