Каков наилучший стиль оформления для javascript? Зачем?

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

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

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

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

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

6 ответов

Решение

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

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

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

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

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

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

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

Насколько я понимаю, я использую стилизацию 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 и т. Д.).

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

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

Это мои $0,02.

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

ALongButNotReallyReadableIdentifier
an_even_longer_but_completely_readable_identifier

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

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

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

Другие вопросы по тегам