Я знаю, что существует много противоречий (возможно, не противоречий, но, по крайней мере, аргументов) о том, какое соглашение об именах лучше для JavaScript.
Как вы называете свои переменные, функции, объекты и тому подобное?
Я оставлю свои собственные мысли по этому поводу, так как я не занимался JS долго (только пару лет), и я только что получил запрос на создание документа с соглашениями об именах для использования в наших проектах на работе , Так что я искал (google-ing) вокруг, и есть так много разных мнений.
В книгах, которые я читал на JS, также используются разные соглашения об именах, но все они сходятся в одном: «Найдите то, что вам подходит, и придерживайтесь его» Но теперь, когда я так много прочитал, я обнаружил, что некоторые другие методы мне нравятся немного лучше, чем те, к которым я привык.
источник
Ответы:
Я следую соглашениям по кодексу Дугласа Крокфорда для javascript. Я также использую его инструмент JSLint для проверки соблюдения этих соглашений.
источник
ECBhandle
противecbHandle
(не имеет значения, что означает ЕЦБ).Как говорит Джефф, Крокфорд говорит , что это хорошо.
Единственное исключение, за которым я следую (и которое широко используется), - это использование $ varname для обозначения объекта jQuery (или любой другой библиотеки). Например
var footer = document.getElementById('footer');
var $footer = $('#footer');
источник
Вы можете следовать этому руководству по стилю Google JavaScript
В общем, используйте functionNamesLikeThis, variableNamesLikeThis, ClassNamesLikeThis, EnumNamesLikeThis, methodNamesLikeThis и SYMBOLIC_CONSTANTS_LIKE_THIS.
РЕДАКТИРОВАТЬ: см. Хорошую коллекцию руководств по стилю JavaScript и Beautifiers .
источник
_fooBar
это делатьfooBar_
- Microsoft правильно поняла_
при ссылке на приватные переменные сразу же приведет к ограничению результатов; в конце концов подумал, что это личное предпочтение.Одно соглашение, которое я хотел бы опробовать, - это именование статических модулей с префиксом «the». Проверь это. Когда я использую чужой модуль, не легко понять, как я должен его использовать. например:
Я подумываю о том, чтобы попробовать соглашение, в котором статические модули используют «the», чтобы указать свое предсуществование. Кто-нибудь видел лучший способ, чем этот? Будет выглядеть так:
источник
Я думаю, что помимо некоторых синтаксических ограничений; рассуждения по соглашениям об именах очень независимы от языка. Я имею в виду, что аргументы в пользу c_style_functions и JavaLikeCamelCase могут с равным успехом использоваться противоположным образом, просто пользователи языка стремятся следовать за авторами языка.
Сказав это, я думаю, что большинство библиотек обычно следуют упрощению Java CamelCase. Я нахожу советы Дугласа Крокфорда достаточно вкусными для меня.
источник
Это отдельный вопрос, который может зависеть от того, как вы работаете. Некоторые люди любят помещать тип переменной в начале переменной, например "str_message". И некоторые люди любят использовать подчеркивание между своими словами («my_message»), в то время как другие любят разделять их заглавными буквами («myMessage»).
Я часто работаю с огромными библиотеками JavaScript с другими людьми, поэтому функции и переменные (кроме закрытых переменных внутри функций) должны начинаться с имени службы, чтобы избежать конфликтов, таких как "guestbook_message".
Короче говоря: английский, строчные буквы, хорошо организованные имена переменных и функций предпочтительнее для меня. Имена должны описывать их существование, а не быть короткими.
источник