Подтвердить что ты не робот

Стандарт именования/форматирования глобальных переменных

Что такое именование и формат форматирования глобальных переменных в JavaScript?

Например:

var global_var // ?
var _global_var // ?
var GLOBAL_VAR // ?
var _GLOBAL_VAR // ?
...

Примечание. Я не говорю о константах, просто переменных, имеющих глобальную область.

4b9b3361

Ответ 1

Стандартов не существует. Наиболее распространенной практикой является использование более низкого верблюжьего случая (например, var fooBarBaz;) для всех переменных и имен свойств независимо от области действия, но это отнюдь не универсально. Единственным исключением является использование имени функции, предназначенной для использования в качестве конструктора:

function SomeClass() {}

var someClassObj = new SomeClass();

Я также видел капители блоков и символы подчеркивания, используемые для переменных, которые автор считает константами, или, альтернативно, для всех глобальных переменных:

var EARTH_RADIUS = 6378100;

Еще одно разумное общее соглашение (хотя и не одно, которое я использую сам) - это префикс свойств объектов, которые автор хочет считать приватными с подчеркиванием:

this._leaveThisAlone = "Magical property";

Дуглас Крокфорд опубликовал свой собственный подход к стандартам кода JavaScript несколько лет назад, который охватывает большую часть этого, но, как всегда, это всего лишь мнение одного человека, так что возьмите с собой щепотку соли.

Ответ 2

Необходимый комментарий о переосмыслении дизайна, если вам нужно использовать глобальные переменные, бла-бла...

Глобальные переменные, которые я видел, обычно имеют префикс g или gbl. Иногда это изменяется с помощью подчеркивания: _g, _gbl. IIRC, подчеркивания использовались, когда "глобальный" ограничивался некоторой областью, а не "действительно" глобальным.

Если вы собираетесь использовать глобальную переменную таким образом, чтобы ВСЕМ не было возможности использовать переменную, я бы использовал символ подчеркивания. В javascript (IIRC) соглашение об использовании подчеркивания в качестве префикса подразумевает, что переменная 'private' или не должна использоваться извне. Если вы, поочередно, объявляете его так, чтобы каждый мог иметь доступ и изменять, тогда я бы использовал только префикс и не подчеркивал.

Ответ 3

Одна большая причина, по которой люди говорили бы вам не использовать глобальные переменные, - это не мешать другим скриптам и/или библиотекам.

Соглашение, которое я начал использовать, когда мне нужно использовать глобальную переменную, - это добавить мою фамилию - таким образом, я знаю, что не буду вмешиваться в глобальные переменные любых библиотек или внешних скриптов. (Хотя у меня есть довольно уникальная фамилия - это может не сработать, если вы Смит).

Итак, мои глобальные переменные будут называться:

var foo_lastnameGlobal;
var bar_lastnameGlobal;

Я должен указать (в случае, если это неясно), это просто личное соглашение, а не обычное или широко используемое. Это также помогает мне помнить, что такое мои глобальные переменные, когда я их использую. Полагаю, что это может быть не так хорошо для общедоступного кода или рабочей среды профессиональной группы.

Ответ 4

Если вы хотите, чтобы employeeID был глобальной переменной, тогда правильный метод - объявить как window.employeeID = 5; а затем используйте window.employeeID во всех местах, к которым вы будете обращаться позже.