Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Зачем в javascript нужны константы ? (https://javascript.ru/forum/misc/83130-zachem-v-javascript-nuzhny-konstanty.html)

goootlib 23.09.2021 17:07

Зачем в javascript нужны константы ?
 
Я новичок в js - пришёл сюда недавно из PHP. Прочитал учебник Ильи Кантора, учу Vue.js. Читая темы здесь на форуме и когда просматривал код React'а, заметил склонность некоторых js-программистов объявлять константы, а не переменные. Собственной мой вопрос - зачем стремиться к тому, чтобы объявлять всё через const, а не let ? Это первый вопрос. Второй вопрос заключается в следующем. Зачем некоторые программисты стараются использовать везде функции-стрелки вместо обычных функций, у них ведь нет this и нет arguments ? И последний, флеймовый вопрос. Какой js-фреймворк учить ? Правильно я сделал что выбрал Vue.js ? С чем вы бы посоветовали ознакомиться в первую очередь в фронтенд разработке кроме вёрстки ? Дайте какой-нибудь совет мне.

goootlib 23.09.2021 17:50

Цитата:

Сообщение от goootlib (Сообщение 540354)
Я новичок в js - пришёл сюда недавно из PHP. Прочитал учебник Ильи Кантора, учу Vue.js. Читая темы здесь на форуме и когда просматривал код React'а, заметил склонность некоторых js-программистов объявлять константы, а не переменные. Собственной мой вопрос - зачем стремиться к тому, чтобы объявлять всё через const, а не let ?

Как бы понятно что так скорей всего делают чтобы не было возможности изменить, что уже было объявлено. Но просто в PHP да и во всех остальных языках тоже есть константы, но там их таким образом не используют как в js.

Aetae 23.09.2021 17:53

Юзать const для неизменных значений - хорошая привычка. Если ты случайно попытаешься изменить const - оно те не даст, в отличие от let\var. Потому в большинстве линтеров правила забиты которые приучают тебя к этому.)

На счёт выбора Vue я лично поддерживаю: лучший фреймворк, где надо думает за тебя, где надо позволяет свободу самовыражения.)
В React куча унылого никому не нужного микроконтроля и устаревшая неудобная система реактивности с бесполезным оверхэдом. Angular - прокрустово ложе с кучей мусора и boilerplate.

ksa 23.09.2021 18:06

Цитата:

Сообщение от goootlib
Но просто в PHP да и во всех остальных языках тоже есть константы, но там их таким образом не используют как в js.

Я х/з как в ПХП... :)
Но именно в некоторых ЯП константы так и используются. Их цель явно что-то определить и не давать потом модифицировать.

ksa 23.09.2021 18:09

Цитата:

Сообщение от goootlib
Зачем некоторые программисты стараются использовать везде функции-стрелки вместо обычных функций, у них ведь нет this и нет arguments ?

С чего ты взял что они это делают именно "везде"? :)
Очевидно стрелочные функции используются там где их можно использовать. Иначе были бы проблемы с выполнением кода...

ksa 23.09.2021 18:12

Цитата:

Сообщение от goootlib
Какой js-фреймворк учить ?

Почитай про все... Выбери (для начала) тот, который тебе больше будет понятен.
Но выгоднее знать про все, т.к. не понятно в какую контору тебе придется устраиваться и что там будут требовать...

voraa 23.09.2021 18:50

Цитата:

Сообщение от goootlib
Но просто в PHP да и во всех остальных языках тоже есть константы, но там их таким образом не используют как в js.

Ну в С++ как раз так константы и используют, особенно с указателями.
Цитата:

Сообщение от goootlib
Зачем некоторые программисты стараются использовать везде функции-стрелки вместо обычных функций, у них ведь нет this и нет arguments ?

Далеко не во всех функциях используется this, а arguments и того реже.
А запись стрелочных функций короче. Ну и кроме того, что не надо при вызове тащить this и arguments у интерпретатора появляются дополнительные возможности для оптимизации.

ksa 23.09.2021 21:30

Уже прям интрига повисла! :D
goootlib, каким же образом используются константы в тех "во всех остальных языках"? :blink:

Aetae 24.09.2021 00:25

Цитата:

Сообщение от voraa (Сообщение 540360)
Ну и кроме того, что не надо при вызове тащить this и arguments у интерпретатора появляются дополнительные возможности для оптимизации.

На счёт "тащить this" - спорный аргумент. ИМХО как раз стрелки "тащат" this - они вынуждены запоминать this окружения и использовать оный откуда бы их не вызывали, в то время как для обычных функций this скорее что-то вроде скрытого простого аргумента: some.func(a) -> func(this = some, a) и на производительность с памятью влиять не должен.)

voraa 24.09.2021 08:50

Цитата:

Сообщение от Aetae
ИМХО как раз стрелки "тащат" this - они вынуждены запоминать this окружения

Функции всегда тащат свое лексическое окружение, что бы иметь возможность реализовывать замыкание. В этом случае this просто переменная из замыкания.


Часовой пояс GMT +3, время: 21:34.