Каков наилучший стиль оформления для javascript? Зачем? - PullRequest
18 голосов
/ 17 июня 2009

Одним из аспектов javascript, о котором трудно найти информацию, является практика использования оболочки. Под практикой использования я имею в виду, какой стиль корпуса (т. Е. Случай верблюда, случай паскаля и т. Д.) Должен использоваться для каких элементов (конструкторы, частные функции, публичные функции).

Единственное правило, которое я слышал, было из лекции Дугласа Крокфорда о театре YUI, утверждающей, что конструкторы должны быть единственными функциями, которые начинаются с заглавной буквы.

Кроме того, кажется, что в javascript не так уж много стандартов для оболочек, которым следуют люди.

Кто-нибудь знает какие-либо передовые практики использования javascript и почему их целесообразно использовать?

Также придерживаетесь ли вы стиля оболочки в своих файлах .js?

Ответы [ 6 ]

33 голосов
/ 17 июня 2009

Я предпочитаю PascalCase для конструкторов и camelCase для всего остального. Это стиль, который использует стандартная библиотека JS, и хорошо ... каждая среда JS, которую я видел до сих пор

И я использую соглашение об именах all_lowercase для всех файлов, подаваемых из Интернета. Есть некоторые нечувствительные к регистру файловые системы.

14 голосов
/ 17 июня 2009

Базовый язык использует InitialCaps для конструкторов (например, Object, Date, Number, RegExp) и camelCase для методов и свойств (например, нечто. Это соглашение также соблюдается в спецификациях и реализациях DOM (например, HTMLElement.setAttribute ()). Поэтому имеет смысл принять такое же соглашение, или вы получите ужасную путаницу стилей, таких как:

var number_of_fish_requested = document.getElementById("fish").value;
var fish_count = parseInt(number_of_fish_requested, 10);

, что просто сбивает с толку, не только печатать, но, что гораздо важнее, читать.

(Вы тратите больше времени на чтение кода, пытаясь его отладить или изменить, чем когда-либо прежде, чем писать его вначале.)

2 голосов
/ 02 мая 2013

То, что я видел до сих пор, - это очень большое разнообразие стандартов обсадных труб.

Насколько я понимаю, я использую стилизацию C # для написания своего кода JavaScript. Я часто использую классы (ну, функции как классы, и обычно у них нет независимых функций.) Поэтому я использую PascalCase для имен классов, открытых методов, свойств и всех глобальных переменных и camelCase для аргументов, локальных переменных и частных функций. Это как-то отражает мою общую среду, помогая различать области видимости переменных. Я также стараюсь хранить свои функции класса в отдельном файле с тем же именем, что и у моего ClassName (ClassName.js, ClassName.min.js).

Это было о моем подходе.

Я также заметил, что программисты Java следуют правилам Java (а стиль написания напоминает язык Java). Программисты Ruby on Rails следуют своим собственным стандартам именования, таким как underscore_separated_var_name.

Кроме того, как вы упомянули, существует тенденция часто использовать pascalCase для именования в очень популярных средах, авторы которых представляют различные сообщества, такие как сообщество Linux / Open Source и разработчики Microsoft (jQuery, knockout.js, JSJaC и т. Д. ) * +1010 *

Я должен отметить, что ни один из этих методов не является неправильным или правильным, когда дело доходит до JS. Основная цель ваших соглашений об именах и структурировании файлов - это удобочитаемость. Если вы будете последовательны, то в будущем вы и ваши коллеги-разработчики быстро поймете и освоите ваш код.

1 голос
/ 17 июня 2009

Все строчные буквы с разделителями подчеркивания легче всего читать; следует естественному языку. «Лучший» приведет вас к священной войне; реальность такова, что дело не так важно, как другие вопросы дизайна, но это простая тема для поляризации.

ALongButNotReallyReadableIdentifier
an_even_longer_but_completely_readable_identifier
1 голос
/ 17 июня 2009

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

Это мои 0,02 доллара.

0 голосов
/ 27 марта 2013

Принятый ответ верен, но есть некоторые исключения. В window.JSON и window.XMLHttpRequest термин пишется с большой буквы.

Также большинство людей используют PascalCase для объектов перечислимого типа в Javascript и заглавных значений внутри. Иногда пространства имен выполняются и в PascalCase.

Пример: MyCompany.Web.UI.MyComponent.ThemeOption = {ЧЕРНЫЙ: 0, СЕРЕБРО: 1, СИНИЙ: 2}

...