23.09.2021, 17:07
|
Новичок на форуме
|
|
Регистрация: 29.06.2021
Сообщений: 4
|
|
Зачем в javascript нужны константы ?
Я новичок в js - пришёл сюда недавно из PHP. Прочитал учебник Ильи Кантора, учу Vue.js. Читая темы здесь на форуме и когда просматривал код React'а, заметил склонность некоторых js-программистов объявлять константы, а не переменные. Собственной мой вопрос - зачем стремиться к тому, чтобы объявлять всё через const, а не let ? Это первый вопрос. Второй вопрос заключается в следующем. Зачем некоторые программисты стараются использовать везде функции-стрелки вместо обычных функций, у них ведь нет this и нет arguments ? И последний, флеймовый вопрос. Какой js-фреймворк учить ? Правильно я сделал что выбрал Vue.js ? С чем вы бы посоветовали ознакомиться в первую очередь в фронтенд разработке кроме вёрстки ? Дайте какой-нибудь совет мне.
|
|
23.09.2021, 17:50
|
Новичок на форуме
|
|
Регистрация: 29.06.2021
Сообщений: 4
|
|
Сообщение от goootlib
|
Я новичок в js - пришёл сюда недавно из PHP. Прочитал учебник Ильи Кантора, учу Vue.js. Читая темы здесь на форуме и когда просматривал код React'а, заметил склонность некоторых js-программистов объявлять константы, а не переменные. Собственной мой вопрос - зачем стремиться к тому, чтобы объявлять всё через const, а не let ?
|
Как бы понятно что так скорей всего делают чтобы не было возможности изменить, что уже было объявлено. Но просто в PHP да и во всех остальных языках тоже есть константы, но там их таким образом не используют как в js.
|
|
23.09.2021, 17:53
|
|
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,590
|
|
Юзать const для неизменных значений - хорошая привычка. Если ты случайно попытаешься изменить const - оно те не даст, в отличие от let\var. Потому в большинстве линтеров правила забиты которые приучают тебя к этому.)
На счёт выбора Vue я лично поддерживаю: лучший фреймворк, где надо думает за тебя, где надо позволяет свободу самовыражения.)
В React куча унылого никому не нужного микроконтроля и устаревшая неудобная система реактивности с бесполезным оверхэдом. Angular - прокрустово ложе с кучей мусора и boilerplate.
__________________
29375, 35
|
|
23.09.2021, 18:06
|
|
CacheVar
|
|
Регистрация: 19.08.2010
Сообщений: 14,228
|
|
Сообщение от goootlib
|
Но просто в PHP да и во всех остальных языках тоже есть константы, но там их таким образом не используют как в js.
|
Я х/з как в ПХП...
Но именно в некоторых ЯП константы так и используются. Их цель явно что-то определить и не давать потом модифицировать.
|
|
23.09.2021, 18:09
|
|
CacheVar
|
|
Регистрация: 19.08.2010
Сообщений: 14,228
|
|
Сообщение от goootlib
|
Зачем некоторые программисты стараются использовать везде функции-стрелки вместо обычных функций, у них ведь нет this и нет arguments ?
|
С чего ты взял что они это делают именно "везде"?
Очевидно стрелочные функции используются там где их можно использовать. Иначе были бы проблемы с выполнением кода...
|
|
23.09.2021, 18:12
|
|
CacheVar
|
|
Регистрация: 19.08.2010
Сообщений: 14,228
|
|
Сообщение от goootlib
|
Какой js-фреймворк учить ?
|
Почитай про все... Выбери (для начала) тот, который тебе больше будет понятен.
Но выгоднее знать про все, т.к. не понятно в какую контору тебе придется устраиваться и что там будут требовать...
|
|
23.09.2021, 18:50
|
|
Профессор
|
|
Регистрация: 03.02.2020
Сообщений: 2,750
|
|
Сообщение от goootlib
|
Но просто в PHP да и во всех остальных языках тоже есть константы, но там их таким образом не используют как в js.
|
Ну в С++ как раз так константы и используют, особенно с указателями.
Сообщение от goootlib
|
Зачем некоторые программисты стараются использовать везде функции-стрелки вместо обычных функций, у них ведь нет this и нет arguments ?
|
Далеко не во всех функциях используется this, а arguments и того реже.
А запись стрелочных функций короче. Ну и кроме того, что не надо при вызове тащить this и arguments у интерпретатора появляются дополнительные возможности для оптимизации.
Последний раз редактировалось voraa, 23.09.2021 в 18:53.
|
|
23.09.2021, 21:30
|
|
CacheVar
|
|
Регистрация: 19.08.2010
Сообщений: 14,228
|
|
Уже прям интрига повисла!
goootlib, каким же образом используются константы в тех "во всех остальных языках"?
|
|
24.09.2021, 00:25
|
|
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,590
|
|
Сообщение от voraa
|
Ну и кроме того, что не надо при вызове тащить this и arguments у интерпретатора появляются дополнительные возможности для оптимизации.
|
На счёт "тащить this" - спорный аргумент. ИМХО как раз стрелки "тащат" this - они вынуждены запоминать this окружения и использовать оный откуда бы их не вызывали, в то время как для обычных функций this скорее что-то вроде скрытого простого аргумента: some.func(a) -> func(this = some, a) и на производительность с памятью влиять не должен.)
__________________
29375, 35
|
|
24.09.2021, 08:50
|
|
Профессор
|
|
Регистрация: 03.02.2020
Сообщений: 2,750
|
|
Сообщение от Aetae
|
ИМХО как раз стрелки "тащат" this - они вынуждены запоминать this окружения
|
Функции всегда тащат свое лексическое окружение, что бы иметь возможность реализовывать замыкание. В этом случае this просто переменная из замыкания.
|
|
|
|