Соглашение об именах для ключей объектов const в ES6

Есть ли рекомендуемое соглашение об именах для имен ключей в объекте const в es6? Мне не удалось найти ресурс, в котором указано, должны ли они быть прописными или строчными.

const COLOR_CODES = {
  BLUE: 1,
  RED: 1
};

против

const COLOR_CODES = {
  blue: 1,
  red: 1
};

Примеры из этой статьи MDN показывают оба стиля, поэтому, возможно, оба приемлемы.

Ответ 1

По словам Google это будет все заглавные буквы. Судя по опыту, большинство других языков программирования имеют заглавные буквы, поэтому я бы предложил использовать это.

Используйте NAMES_LIKE_THIS для постоянных значений.

Используйте @const чтобы указать постоянный (не перезаписываемый) указатель (переменная или свойство).

Руководство по javascript Google https://google.github.io/styleguide/javascriptguide.xml

Ответ 2

ПРИМЕЧАНИЕ. Имейте в виду, что в принятом ответе есть ссылка на устаревшее руководство по стилю Google.

Это хорошо (строковые литералы или целочисленные литералы):

const PI = 3.14;
const ADDRESS = '10.0.0.1';

но...

const myObject = { key: 'value' };
const userSuppliedNumber = getInputNumber()

Руководство по стилю Google JavaScript гласит:

Объявите все локальные переменные с помощью const или let. Используйте const по умолчанию, если только переменная не должна быть переназначена. Ключевое слово var не должно использоваться.

Каждая константа является статическим свойством @const или объявлением константы локального модуля, но не все статические свойства @const и константы локального модуля являются константами. Прежде чем выбирать постоянный регистр, подумайте, действительно ли поле ощущается как глубоко неизменная константа. Например, если любое из этого наблюдаемого состояния экземпляра может измениться, оно почти наверняка не является константой. Простого намерения никогда не мутировать объект обычно недостаточно.

JavasScript.info говорит:

... константы с заглавными буквами используются только в качестве псевдонимов для "жестко закодированных" значений.

Ответ 3

Google однажды рекомендовал следующее:

const COLOR_CODES = {
  BLUE: 1,
  RED: 1
};

См.: https://google.github.io/styleguide/javascriptguide.xml#Constants.

  • Используйте NAMES_LIKE_THIS для постоянных значений.
  • Используйте @const чтобы указать постоянный (не перезаписываемый) указатель (переменная или свойство).
  • Никогда не используйте ключевое слово const поскольку оно не поддерживается в Internet Explorer.

Тем не менее, обновленные рекомендации по стилю имеют разные рекомендации.

Ответ 4

Соглашения об именах повсеместны, я лично до сих пор не определился с моими предпочтениями, но добавлю к обсуждению то, что говорит Airbnb JavaScript Style Guide (см. Последние примеры):

// bad
const PRIVATE_VARIABLE = 'should not be unnecessarily uppercased within a file';

// bad
export const THING_TO_BE_CHANGED = 'should obviously not be uppercased';

// bad
export let REASSIGNABLE_VARIABLE = 'do not use let with uppercase variables';

// ---

// allowed but does not supply semantic value
export const apiKey = 'SOMEKEY';

// better in most cases
export const API_KEY = 'SOMEKEY';

// ---

// bad - unnecessarily uppercases key while adding no semantic value
export const MAPPING = {
  KEY: 'value'
};

// good
export const MAPPING = {
  key: 'value'
};