@Extramezz

Когда нужно использовать константы?

Понимаю, что константы - лишь способ сделать код красивее, но когда со стороны правильного кода их надо использовать и объявлять?

Есть еще пара конкретных вопросов:
  • Константы должны быть объявлены именно в начале кода?
  • Верно ли присваевать константе значение результат функции CONSTANTA = func() или ее значением должны быть простые типы CONSTANTA = 2?

  • Вопрос задан
  • 1595 просмотров
Решения вопроса 3
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
в js нет констант. В emcascript2015 появилась возможность объявить иммутабл переменную используя ключевое слово const, которое позволяет организовать схожее поведение.

Константы в том смысле, который приводите вы - это способ делать код более читабельным. Допустим у нас есть какая-то логика, которая зависит от какой-то предопределенной величины (например запускать таск каждые 11 часов). Мы можем написать так:
addJob(fn, 11 * 3600);
// или
const SOME_JOB_FREQUENCY = 11 * 3600;
addJob(fn, SOME_JOB_FREQUENCY)


Какой код вам будет быстрее осмыслить? Так же если у нас эти значения используются везде и всюду то мы можем легко поменять эту контанту. Соблюдается принцип DRY и т.д.

С другой стороны, давайте все же чуть чуть поговорим о const и имутабельных переменных. В общем случае нужно всегда использовать const, а не let/var, делая наши переменные имутабельными и предотвращая случайную перезапись значения. В контексте javascript это весьма частая ошибка, так как переменные могут быть объявлены в другом скоупе и мы можем случайно затереть значение из замыкания. Мутабельные переменные нужны только для случаев, когда изменение оных необходимо (счетчики например). Все остальное должно быть имутабельным.
Ответ написан
@IceJOKER
Web/Android developer
Понимаю, что константы - лишь способ сделать код красивее - неправильно понимаете, у констант своя миссия - НЕ ДАВАТЬ СВОЕМУ ЗНАЧЕНИЮ ИЗМЕНЯТЬ!
Объявляя константу в одном месте - можно быть уверенным, что это значение останется таковым.

1. Не обязательно, но желательно.
2. Константа - это определенное значение, фиксированное
Ответ написан
IonDen
@IonDen
JavaScript developer. IonDen.com
Соль в том, что совершенно не важно, как вы присвоите значение константе в первый раз. Это может быть:
var A = "foo";
var B = (function () {return 'bar';})();
var C = B;

И всё, дальше вы только читаете их значения, но никогда больше не присваиваете.

В современном JS, константы - это не более чем соглашение. Пишите название переменной заглавными буквами и всё, она как бы константа. Конечно есть приемы, позволяющие делать настоящие константы, изменить которые нельзя после.

В новом JS (ECMAscript 6 и выше). Работа с константами выведена на новый уровень, теперь есть специальное ключевое слово для их объявления, на равне с var):
const A = "foo";
const B = (function () {return 'bar';})();
const C = B;

// и теперь если вы попробуете снова присвоить значение

A = 'baz';
console.log(A); // по прежнему 'foo'!
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы