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

StackOverflow https://stackoverflow.com/questions/1008230

Вопрос

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

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

Кроме того, похоже, что в JavaScript не так уж много стандартов регистра, которым люди следуют.

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

А также соблюдаете ли вы регистр в своих файлах .js?

Это было полезно?

Решение

Я предпочитаю 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 доллара.

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

ALongButNotReallyReadableIdentifier
an_even_longer_but_completely_readable_identifier

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top