Jest kilka bardzo ważnych korzyści dla używania const, a niektórzy twierdzą, że powinny być używane wszędzie tam, gdzie jest to możliwe, ze względu na ich celowość i orientację.
Jest to, o ile mogę powiedzieć, najbardziej indykatywna i przewidywalna deklaracja zmiennych w Javascript i jedna z najbardziej użytecznych, PONIEWAŻ jak bardzo jest ograniczona. Czemu? Ponieważ eliminuje pewne możliwości dostępne dla var i zezwalania na deklaracje.
Co można wywnioskować, czytając "const"? Znasz wszystkie poniższe po prostu czytając deklarację deklaracji const ORAZ bez skanowania dla innych odniesień do tej zmiennej: wartość jest przypisana do tej zmiennej (chociaż jej obiekt bazowy nie jest głęboko niezmienny); dostęp do niego nie jest możliwy poza jego bezpośrednim blokiem; i wiązanie nigdy nie jest dostępne przed deklaracją, ze względu na Temporal Dead Zone rules (TDZ).
Z artykułu twierdząc korzyści Pozwolić i const, a także bardziej bezpośrednio odpowiedzi na pytanie o ograniczeniami/limitów słowa kluczowego:
„Ograniczenia takie jak te oferowane przez niech i const są skutecznym sposobem dokonywania Kod jest łatwiejszy do zrozumienia, staraj się gromadzić jak najwięcej z tych ograniczeń w kodzie, który piszesz. Im bardziej deklaratywne ograniczenia ograniczają to, co może oznaczać kawałek kodu, tym łatwiej i szybciej ludzie czytają, przetwarzają i rozumieją kawałek kodu w przyszłości
Zgoda na więcej deklaracji const niż deklaracji var: zakres blokowy, TDZ, przypisanie przy deklaracji, brak ponownego zadanie. Natomiast instrukcje var tylko sygnalizują zakres funkcji. Zliczanie reguł nie daje jednak wiele wglądu. Lepiej jest zważyć te reguły pod względem złożoności: czy reguła dodaje lub odejmuje złożoność? W przypadku const zakres blokowania oznacza węższy zakres niż funkcja scoping, TDZ oznacza, że nie musimy skanować zakresu wstecz od deklaracji, aby wykryć użycie przed deklaracją, a reguły przypisania oznaczają, że powiązanie zawsze będzie zachowywać to samo odniesienie.
Im bardziej ograniczone są instrukcje, tym prostszy staje się kawałek kodu. Gdy dodamy ograniczenia do tego, co może oznaczać wypowiedź, kod staje się mniej nieprzewidywalny. Jest to jeden z największych powodów, dla których programy napisane statycznie są na ogół łatwiejsze do odczytania niż te napisane dynamicznie. Pisanie statyczne nakłada duże ograniczenia na program piszący, ale także nakłada duże ograniczenia na interpretację programu, dzięki czemu jego kod jest łatwiejszy do zrozumienia.
Z tych argumentów na uwadze, zaleca się używać const gdzie jest to możliwe, ponieważ jest to stwierdzenie, że daje nam najmniejsze możliwości, aby myśleć o „
. Źródło: https://ponyfoo.com/articles/var-let-const
Wydaje się zapytać wielokrotność pytania: 1) * "Interesuje mnie, czy istnieją ograniczenia co do tego, jakie typy wartości można ustawić za pomocą const w JavaScript" * Nr 2) * "Czy jest to ważne?" * Tak, 3) * "czy jest uważane za złe? Praktykuj z jakiegokolwiek powodu "* Myślę, że nie było go wystarczająco długo, by cokolwiek o tym powiedzieć, ale nie rozumiem, dlaczego powinno to być praktyka padowa.Nie jest ono bardzo różne od' var doSomething =; ' 4) * "Czy wszystkie funkcje powinny być zdefiniowane w ten sposób w ES6 ? "* Wydaje się nieporęczny dla mnie. Lubię deklaracje funkcji. Wszyscy są ich własnymi. –
Sposób, w jaki to widzę (opinia, a nie fakt), ma sens, jeśli chcesz uniemożliwić przedefiniowanie funkcji. Czy to rozsądne, czy też ma jakieś funkcjonalne zastosowanie - to jest dyskusyjne. Jeśli uważasz, że pasuje do twojego scenariusza użycia, nie sądzę, że ktoś może argumentować twoją decyzję i uzna to za złą praktykę. – Mjh
Myślę, że pytanie brzmi, co chcesz osiągnąć za pomocą 'const'. Czy chcesz zapobiec przejęciu funkcji? Zakładam, że znasz swój kod, by tego nie robić. Czy chcesz wyrazić zamiar 'doSomething', tzn. Czy posiada on funkcję i nie zmienia jej wartości? Myślę, że deklaracje funkcji również jasno to wyrażają. Tak więc, jeśli potrzebujesz "ochrony podczas pracy" przed przesłonięciem, idź do niego. W przeciwnym razie nie widzę zbyt wielu korzyści. Oczywiście jeśli używałeś przede wszystkim 'var foo = function() {};', użyłbym 'const' zamiast' var'. –