ЛУЧШИЙ САЙТ ДЛЯ ВЕБ-РАЗРАБОТЧИКОВ

JS Учебник

JS Старт JS Интро JS Установка JS Вывод JS Инструкции JS Синтаксис JS Комментарии JS Переменные JS Ключевое слово Let JS Ключевое слово Const JS Операторы JS Арифметические JS Присваивание JS Типы данных JS Функции JS Объекты JS События JS Строки JS Строковые методы JS Строковый поиск JS Строковые шаблоны JS Числа JS Числовые методы JS Массивы JS Методы массива JS Сортировка массива JS Итерация массива JS Массив Const JS Даты JS Форматы дат JS Методы получения дат JS Методы установки дат JS Математические JS Рандомные JS Булевы JS Сравнения JS Условия JS Switch JS Цикл For JS Цикл For In JS Цикл For Of JS Цикл While JS Break и Continue JS Итерации JS Наборы JS Карты JS Typeof JS Преобразование типов JS Побитовые JS Регулярные выражения JS Ошибки JS Область действия JS Хостинг JS Use Strict JS Ключевое слово this JS Функция стрелки JS Классы JS JSON JS Отладка JS Гид по стилю JS Лучшие практики JS Распространенные ошибки JS Производительность JS Зарезервированные слова

JS Версии

JS Версии JS 2009 (ES5) JS 2015 (ES6) JS 2016 JS 2017 JS 2018 JS IE/Edge JS История

JS Объекты

Определения объектов Свойства объекта Методы объекта Отображение объекта Доступ к объектам Конструкторы объектов Прототипы объектов Итерируемые объекты Наборы объектов Карты объектов Справочник объектов

JS Функции

Определения функций Параметры функции Обращение к функции Вызов функции Применение функции Закрытие функции

JS Классы

Введение Наследование класса Статические методы

JS Асинхронный

Обратные вызовы Асинхронный Промисы Async/Await

JS HTML DOM

DOM Введение DOM Методы DOM Документ DOM Элементы DOM HTML DOM Формы DOM CSS DOM Анимация DOM События DOM Слушатель событий DOM Навигация DOM Узлы DOM Коллекции DOM Узловые списки

JS Браузер BOM

JS Окно JS Скрин JS Локация JS История JS Навигатор JS Всплывающее оповещение JS Тайминг JS Куки

JS Веб API

Веб API Интро Веб-формы API Веб-история API Веб-хранилище API Веб-воркер API Веб-выборка API Веб-геолокация API

JS AJAX

AJAX Интро AJAX XMLHttp AJAX Запрос AJAX Отклик AJAX XML Файл AJAX PHP AJAX ASP AJAX База данных AJAX Приложения AJAX Примеры

JS JSON

JSON Введение JSON Синтаксис JSON и XML JSON Типы данных JSON Анализ JSON Stringify JSON Объекты JSON Массивы JSON Сервер JSON PHP JSON HTML JSON JSONP

JS и jQuery

jQuery Селекторы jQuery HTML jQuery CSS jQuery DOM

JS Примеры

JS Примеры JS HTML DOM JS HTML Input JS HTML Объекты JS HTML События JS Браузер JS Редактор JS Упражнения JS Викторина JS Сертификат

JS Справочники

JavaScript Объекты HTML DOM Объекты

JavaScript. W3Schools на русском. Уроки для начинающих

JavaScript Гид по стилю


Всегда используйте одни и те же соглашения о кодировании для всех своих проектов JavaScript.


Соглашения о кодировании JavaScript

Соглашения о кодировании - это рекомендации по стилю программирования. Обычно они содержат:

  • Правила именования и объявления для переменных и функций
  • Правила использования пробелов, отступов и комментариев
  • Практика и принципы программирования

Правила кодирования безопасное качество:

  • Улучшают читаемость кода
  • Упрощают обслуживание кода

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

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


Имена переменных

В W3schools мы используем camelCase (верблюжийРегистр) для имен идентификаторов (переменных и функций).

Все имена начинаются с буквы.

Внизу страницы вы найдете более широкое обсуждение правил именования.

firstName = "John";
lastName = "Doe";

price = 19.90;
tax = 0.20;

fullPrice = price + (price * tax);

Пространства (пробелы) вокруг операторов

Всегда ставьте пробелы вокруг операторов ( = + - * / ) и после запятых:

Примеры:

let x = y + z;
const myArray = ["Volvo", "Saab", "Fiat"];

Отступы в коде

Всегда используйте 2 пробела для отступов кодовых блоков:

Функции:

function toCelsius(fahrenheit) {
  return (5 / 9) * (fahrenheit - 32);
}

Не используйте табы (табуляторы) для отступов. Разные редакторы по-разному интерпретируют табы.


Правила инструкций

Общие правила для простых инструкций:

  • Всегда заканчивайте простую инструкцию точкой с запятой.

Примеры:

const cars = ["Volvo", "Saab", "Fiat"];

const person = {
  firstName: "John",
  lastName: "Doe",
  age: 50,
  eyeColor: "blue"
};

Общие правила для сложных (составных) инструкций:

  • Поместите открывающую скобку в конец первой строки
  • Используйте один пробел перед открывающей скобкой
  • Поместите закрывающую скобку в новую строку без начальных пробелов
  • Не заканчивайте сложную инструкцию точкой с запятой

Функции:

function toCelsius(fahrenheit) {
  return (5 / 9) * (fahrenheit - 32);
}

Циклы:

for (let i = 0; i < 5; i++) {
  x += i;
}

Условия:

if (time < 20) {
  greeting = "Good day";
} else {
 greeting = "Good evening";
}

Правила объекта

Общие правила для определений объектов:

  • Разместите открывающую скобку на той же строке, что и имя объекта
  • Используйте двоеточие плюс один пробел между каждым свойством и его значением
  • Используйте кавычки для строковых значений, а не для числовых значений
  • Не ставьте запятую после последней пары "свойство-значение"
  • Поместите закрывающую скобку в новую строку без пробелов в начале
  • Всегда заканчивайте определение объекта точкой с запятой

Пример

const person = {
  firstName: "John",
  lastName: "Doe",
  age: 50,
  eyeColor: "blue"
};

Короткие объекты могут быть записаны сжатыми в одну строку, используя только пробелы между свойствами, например:

const person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};

Длина строки < 80

Для удобства чтения избегайте строк длиной более 80 символов.

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

Пример

document.getElementById("demo").innerHTML =
"Hello Dolly.";
Попробуйте сами »

Соглашения об именах

Всегда используйте одно и то же соглашение об именах для всего кода. Например:

  • Имена переменных и функций записываются как camelCase (верблюжийРегистр)
  • Глобальные переменные, записываются в ВЕРХНЕМ РЕГИСТРЕ (мы этого не делаем, но это довольно часто)
  • Константы (например, PI) записываются в ВЕРХНЕМ РЕГИСТРЕ

Что следует использовать в именах переменных: hyp-hens, camelCase или under_scores?

Программисты часто обсуждают этот вопрос. Ответ зависит от того, кого вы спрашиваете:

Дефисы в HTML и CSS:

Атрибуты HTML5 могут начинаться с data-, например: data-quantity (количество данных), data-price (цена данных) и т.д.

CSS использует дефисы в именах свойств, например: font-size (размер шрифта).

Дефисы могут быть ошибочно приняты за попытки вычитания. В именах JavaScript нельзя использовать дефис.

Подчеркивание:

Многие программисты предпочитают использовать символы подчеркивания (date_of_birth), особенно в базах данных SQL.

Подчеркивание часто используется в документации PHP.

PascalCase:

Программисты на C часто предпочитают PascalCase.

camelCase:

camelCase используется самим JavaScript, jQuery и другими библиотеками JavaScript.

Не начинайте имена со знака $. Это приведет к конфликту со многими именами библиотек JavaScript.


Загрузка JavaScript в HTML

Используйте простой синтаксис для загрузки внешних скриптов (атрибут type не нужен):

<script src="myscript.js"></script>

Доступ к HTML-элементам

Последствие использования "неопрятного" HTML стиля могут привести к ошибкам JavaScript.

Эти два оператора JavaScript дадут разные результаты:

const obj = getElementById("Demo")

const obj = getElementById("demo")

Если возможно, используйте то же соглашение об именах (как JavaScript) в HTML.

Посетите учебник по HTML Стилю.


Расширения файлов

HTML файлы должны иметь расширение .html, (также допускается .htm).

CSS файлы должны иметь расширение .css.

JavaScript файлы должны иметь расширение .js.


Используйте имена файлов в нижнем регистре

Большинство веб-серверов (Apache, Unix) чувствительны к регистру в именах файлов:

london.jpg недоступен как London.jpg.

Другие веб-серверы (Microsoft, IIS) не чувствительны к регистру:

london.jpg можно открыть как London.jpg или london.jpg.

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

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

Чтобы избежать этих проблем, всегда используйте имена файлов в нижнем регистре (если возможно).


Производительность

Соглашения о кодировании не используются компьютерами. Большинство правил мало влияют на выполнение программ.

Отступы и лишние пробелы не имеют значения в небольших скриптах.

Для кода, находящегося в разработке, предпочтение следует отдавать удобочитаемости. Большие производственные скрипты следует минимизировать.