Na przykład w tym filmie Redux instruktor zawsze używa składni podobnej do
const counter = (state=0, action) => {
... function body here
}
gdzie po prostu użyłbym „tradycyjnego”
function counter(state=0, action) {
... function body here
}
Co jest w rzeczywistości krótsze i, IMO, wyraźniejsze. Łatwiej jest zeskanować dość wyrównaną i uporządkowaną lewą krawędź strony pod kątem słowa „funkcja” niż zeskanować nierówną prawą krawędź pod kątem małego „=>”.
Czy prócz this
obiektywności, a nie opinii, jest jakaś użyteczna różnica lub przewaga w nowej składni?
javascript
functions
es6
użytkownik949300
źródło
źródło
const
że funkcja nie zostanie później zdefiniowana ponownie.Odpowiedzi:
Instrukcje funkcyjne (nazwane funkcje, pokazana druga składnia) są umieszczane na górze pełnego zakresu leksykalnego, nawet te za blokami arbitralnymi i kontrolnymi, takie jak
if
instrukcje. Użycieconst
(podobnegolet
) do zadeklarowania zmiennej daje zakres bloku, zatrzymuje pełne podnoszenie (podnoszenie do zwykłego bloku) i zapewnia, że nie będzie można go ponownie zadeklarować.Podczas łączenia skryptów razem lub korzystania z innych narzędzi do budowania pakietów, podnoszenie funkcji może uszkodzić skrypty będące w konflikcie w sposób trudny do debugowania, ponieważ kończy się niepowodzeniem. Ponownie zadeklarowane zgłoszenie
const
spowoduje wyjątek przed uruchomieniem programu, dzięki czemu debugowanie jest znacznie łatwiejsze.źródło
const
. IMO to trochę krótkowzroczność, aby zacząć używaćconst
wszędzie z tego powodu w czasach eslint, webpack, babel i tak dalej. Od co najmniej dekady nikt już nie łączy ręcznie plików.Oto dlaczego powinieneś użyć
function
:Sygnalizacja jest jasna i zwięzła. Jest to o wiele bardziej korzystne niż jakikolwiek problem związany z podnoszeniem krawędzi wymieniony w drugiej odpowiedzi.
Naprawdę chcesz podnosić w modułach, ponieważ jak widać z poniższego kodu,
const
deklaracjatryDoTheThing
awarii po cichu i nie zostanie złapana, dopóki nie spróbujesz jej wywołać.Większość juniorów, z którymi się stykam, zaczyna
const
deklarować każdą funkcję, ponieważ jest to teraz moda, jak używanie spacji nad tabulatorami lub robienie wszystkiego,functional!!!
ponieważ „OOP źle”. Nie rób tego Nie chcesz być tym facetem, który podąża za modami bez pełnego zrozumienia implikacji.vs
źródło