JavaScript не имеет авторитетного руководства по стилю кодирования, но вместо этого это некоторые популярные стили кодирования:
Кода -копия выглядит следующим образом:
Руководство по стилю Javascript от Google (далее Google)
http://google-tyleguide.googlecode.com/svn/trunk/javascriptguide.xml
Стиль кодирования NPM (в дальнейшем называется NPM)
https://npmjs.org/doc/coding-style.html
Руководство по стилю Node.js от Felix (далее называется Node.js)
http://nodeguide.com/style.html
Идиоматический JavaScript (далее идиомат)
https://github.com/rwldrn/iiomatic.js/
Руководство по стилю jquery javascript (далее называется jQuery)
http://contribute.jquery.org/style-guide/js/
Руководство по стилю JavaScript Douglas Crockford (далее называемый Crockford), Дуглас Крокфорд является одним из самых известных технических органов в области веб-разработки и членом комитета по стандартизации ECMA JavaScript 2.0
http://javascript.crockford.com/code.html
Конечно, есть также некоторые варианты настроек по умолчанию в штрих javascript jslint и jshint. Вопрос в том, каким образом является окончательный стиль кодирования JavaScript, которым могут следовать большинство разработчиков? Давайте найдем некоторые консенсусные стили из этих 6 руководств по стилю ниже.
1. Сравнение стиля кода
1.1 СДАРТАЦИЯ
Два пространства, больше не вдавшегося, без вкладки: Google, NPM, Node.js, Idiomatic
Вкладка: JQUERY
4 пространства: Крокфорд
1.2 Пространства между параметрами и выражениями
Используйте компактные стили: Google, NPM, Node.js
Скопируйте код следующим образом: Project.myclass = function (arg1, arg2) {
Слишком много использования пробелов: идиоматическое, jQuery
Скопируйте код следующим образом: for (i = 0; i <length; i ++) {
Нет комментариев: Крокфорд
В большинстве гидов застройщикам напоминают, что не имеют места в конце заявления.
1.3 Длина строки кода
До 80 символов: Google, NPM, Node.js, Crockford (когда в кодовом блоке другие отступы, за исключением 2 пространств, позволяют выровнять параметры функции с положением первого параметра функции. Другой вариант состоит в том, чтобы использовать 4 пространства для отступления, когда обертывание строки вместо 2.)
Нет комментариев: jQuery, идиоматическое
1,4 полуколона
Всегда используйте полуколоны, не полагаясь на неявные вставки: Google, Node.js, Crockford
Не используйте Ожидайте: NPM в некоторых случаях
Нет комментариев: jQuery, идиоматическое
1,5 комментарии
Следуйте конвенциям JSDOC: Google, идиоматическое
Нет комментариев: npm, node.js, jquery, crockford
1.6 Цитаты
Рекомендуемые отдельные кавычки: Google, node.js
Двойные цитаты: jQuery
Нет комментариев: npm, идиомат, Крокфорд
1.7 Объявление переменной
Объявить по одному без использования запятых: node.js
Кода -копия выглядит следующим образом:
var foo = ”;
var bar = ”;
Объявить несколько сразу, используйте запятые, чтобы отделить в конце линии: идиоматическое, jQuery
Кода -копия выглядит следующим образом:
var foo = "",
bar = "",
Quux;
Используйте запятую в начале линии: NPM
Нет комментариев: Google, Crockford
1,8 брекеты
Используйте первые скобки на той же строке: Google, NPM, Node.js, Idiomatic, JQuery, Crockford
Скопируйте код следующим образом: function thisisblock () {
Руководство NPM утверждает, что используют брекеты только тогда, когда кодовый блок должен включать следующую строку, в противном случае она не будет использоваться.
1.9 Глобальные переменные
Не используйте глобальные переменные: Google, Crockford (Google говорит, что конфликты между глобальными переменными именованиями трудно отлаживать, и могут возникнуть некоторые сложные проблемы, когда два проекта интегрируются. Чтобы облегчить обмен обыкновенным кодом JavaScript, необходимо использовать конвенции, чтобы избежать конфликтов. Крокфорд считает, что нельзя использовать невизимые глобальные переменные) не следует использовать.
Нет комментариев: Idiomatic, jQuery, NPM, Node.js
2 стиль именования
2.1 Переменное именование
Первое слово в начале - нижняя часть регистра, а первая буква всех слов впоследствии - верхняя передача: Google, NPM, Node.js, Idiomatic
Кода -копия выглядит следующим образом:
var foo = "";
var fooname = "";
2.2 Постоянное именование
Используйте заглавные буквы: Google, NPM, Node.js
Кода кода следующая: var ans = 'value';
Нет комментариев: jQuery, идиомат, Крокфорд
2.3 Функциональное именование
Первое слово в начале - строчные, а первая буква всех слов впоследствии - верхняя передача (верблюда): Google, NPM, идиоматическое, node.js (рекомендуется использовать длинные, описательные имена функций)
Кода -копия выглядит следующим образом:
Функция очень многооперации
Функция коротко () ..
Наименование функций в форме ключевых слов:
Кода -копия выглядит следующим образом:
Функция isReady ()
function setName ()
функция getName ()
Нет комментариев: jQuery, Crockford
2.4 именование массива
Используйте форму множественного числа: идиоматическая
Кода -копия выглядит следующим образом: var documents = [];
Нет комментариев: Google, jQuery, NPM, Node.js, Crockford
2.5 Объект и класс.
Используйте следующие формы: Google, NPM, Node.js
Кода -копия выглядит следующим образом:
var thisIsobject = новая дата;
Нет комментариев: jQuery, идиомат, Крокфорд
2.6 Другое именование
Используйте All-Low-Hyphen-CSS-Case для длинных имен файлов и клавиш конфигурации: NPM
3. Настройте файл .jshintrc в соответствии со стилем выше
Jshint (http://www.jshint.com/) - это инструмент для синтаксиса и проверки стиля JavaScript, который вы можете использовать для напоминания о проблемах, связанных с стилем кода. Он может быть хорошо интегрирован во многие обычно используемые редакторы и является отличным инструментом для объединения стилей командного кодирования.
Вы можете просмотреть доступные варианты через документацию JSHINT: http://www.jshint.com/docs/#options
Следующее предназначено для создания файла .jshintrc на основе первого стиля в каждой из вышеперечисленных категорий. Вы можете поместить его в корневой каталог проекта, и редактор кода Jshint-Avare объединит все стили кода в проекте в соответствии с ним.
Кода -копия выглядит следующим образом:
{
"Camelcase": True,
"Подтверждение": 2,
"Undef": правда,
"quotmark": сингл,
"Макслен": 80,
"Тропинг": правда,
«Кудрявый»: правда
}
Кроме того, вы должны добавить следующий заголовок в ваш файл JavaScript:
Кода -копия выглядит следующим образом:
/ * Jshint Browser: True, jQuery: true */
В файле node.js вы должны добавить:
Кода -копия выглядит следующим образом:
/ *jshint node: true */
Вы также можете добавить следующее оператор в различных файлах JavaScript:
Кода -копия выглядит следующим образом:
«Использовать строго»;
Это повлияет на JSHINT и ваш двигатель JavaScript и может быть не таким совместимым, но JavaScript будет работать быстрее.
4. Автоматически выполнять jshint, прежде чем совершать git
Если вы хотите убедиться, что весь код JS соответствует стилю, определенному в.
Кода -копия выглядит следующим образом:
#!/bin/bash
# Pre-Commit Git Hook для запуска JSHINT в файлах JavaScript.
#
# Если вам абсолютно необходимо совершить без тестирования,
# Использование: GIT Commit-NO-Verify
filenames = ($ (git diff-cached--name hed)))
Какой jshint &> /dev /null
Если [$? -ne 0];
Затем
Echo "ошибка: jshint не найдена"
Echo "Установка с: sudo npm install -g jshint"
Выход 1
фигура
ибо я в "$ {filenames [@]}"
делать
if [[$ i = ~ /.js$]];
Затем
Echo jshint $ i
jshint $ i
Если [$? -ne 0];
Затем
Выход 1
фигура
фигура
сделанный