Соглашения об именах JavaScript

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

Как вы называете свои переменные, функции, объекты и т.д.

Я оставляю свои мысли по этому поводу, так как я долго не делал JS (пару лет, только), и мне просто потребовался создать документ с соглашениями об именах, которые будут использоваться в наших проектах на работе. Итак, я искал (google-ing) вокруг, и существует так много разных мнений.

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

Ответ 2

Как говорит Джефф, что Крокфорд говорит, что это хорошо.

Единственное исключение, которое я следую (и широко использовали), - это использовать $varname для указания объекта jQuery (или любой другой библиотеки). Например.

var footer = document.getElementById('footer');

var $footer = $('#footer');

Ответ 4

Я думаю, что помимо некоторых синтаксических ограничений; рассуждения об условных обозначениях очень независимы от языка. Я имею в виду, что аргументы в пользу c_style_functions и JavaLikeCamelCase одинаково хорошо можно использовать обратным образом, так как только пользователи языка склонны следовать за авторами языка.

говоря, что, я думаю, что большинство библиотек, как правило, следуют упрощению Java CamelCase. Я нахожу советы Дугласа Крокфорда со вкусом для меня.

Ответ 5

Одно соглашение, которое я хотел бы попробовать, - это называть статические модули с префиксом "the". Проверь это. Когда я использую модуль кого-то другого, мне нелегко понять, как я должен его использовать. например:

define(['Lightbox'],function(Lightbox) {
  var myLightbox = new Lightbox() // not sure whether this is a constructor (non-static) or not
  myLightbox.show('hello')
})

Я думаю о том, чтобы попробовать соглашение, в котором статические модули используют "the", чтобы указать их предсуществование. Кто-нибудь видел лучший способ, чем это? Будет выглядеть так:

define(['theLightbox'],function(theLightbox) {
  theLightbox.show('hello') // since I recognize the 'the' convention, I know it static
})

Ответ 6

Это индивидуальный вопрос, который может зависеть от того, как вы работаете. Некоторым людям нравится вводить тип переменной в начале переменной, например "str_message". Некоторым людям нравится подчеркивать их слова ( "my_message" ), в то время как другие любят отделять их прописными буквами ( "myMessage" ).

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

Вкратце: английский, более низкие, хорошо организованные переменные и имена функций предпочтительнее, по моему мнению. Имена должны описывать их существование, а не быть короткими.