Есть ли способ определить символические константы в Javascript? - PullRequest
3 голосов
/ 26 марта 2009

Я искал, предлагает ли JavaScript средство для определения символических констант, но ничего не нашел. Я что-то пропустил ?

Является ли распространенной практикой использование вместо этого const var?

var const MAXIMUM_VALUE = 100; 

Thanx.

Ответы [ 3 ]

7 голосов
/ 26 марта 2009

const не поддерживается IE, поэтому, если вы хотите поддержать IE, об этом не может быть и речи.

Насколько я знаю, и лучший способ сделать это для простоты - просто иметь соглашение об именовании для ваших констант, например, когда-либо популярный ALL UPPERCASE. Есть несколько примеров использования констант, но по большей части они того не стоят. В качестве альтернативы вы можете использовать функцию:

function myConst() { return 'myValue'; }

Это, конечно, можно переопределить, но я видел, как оно использовалось.

Также см .:

3 голосов
/ 26 марта 2009

Да. Но вы удалите вар. const заменяет var.

const MAXIMUM_VALUE = 100;
2 голосов
/ 16 февраля 2015
Object.defineProperty(window, 'CONSTANT_NAME', {value: CONSTANT_VALUE});

// usage
console.log(CONSTANT_NAME);

Object.defineProperty() создает свойство со следующими атрибутами по умолчанию:

  • configurable true тогда и только тогда, когда тип этого дескриптора свойства может быть изменен и если свойство может быть удалено из соответствующего объекта. По умолчанию установлено значение false.

  • enumerable Значение true, если и только если это свойство отображается при перечислении свойств соответствующего объекта. По умолчанию установлено значение false.

  • writable true тогда и только тогда, когда значение, связанное со свойством, можно изменить с помощью оператора присваивания. По умолчанию false.

если «константа» - это объект, вы можете дополнительно сделать его неизменным, заморозив его. obj =Object.freeze(obj). имейте в виду, что дочерние объекты-свойства автоматически не замораживаются.

...