Подтвердить что ты не робот

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

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

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

Помимо этого, похоже, что не существует многих стандартов обсадной колонны, которые люди следуют в javascript.

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

Также вы следуете стилю оболочки с вашими .js файлами?

4b9b3361

Ответ 1

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

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

Ответ 2

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

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

который просто становится совершенно запутанным, не только для ввода, но, что гораздо важнее, для чтения.

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

Ответ 3

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

Насколько я понимаю, я использую стиль С# для написания кода 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. Основная цель ваших соглашений об именах и структурирования файлов - это читаемость. Если вы последовательны, то вы в будущем, и ваши коллеги-разработчики быстро поймут и займутся вашим кодом.

Ответ 4

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

Это мои $0,02.

Ответ 5

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

ALongButNotReallyReadableIdentifier
an_even_longer_but_completely_readable_identifier

Ответ 6

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

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

Пример: MyCompany.Web.UI.MyComponent.ThemeOption = {BLACK: 0, SILVER: 1, BLUE: 2}