Перейти к основному содержимому

5.01. Знаки препинания в JavaScript

Разработчику Архитектору

Общие принципы

Знаки препинания в программировании выполняют синтаксические функции, аналогичные их роли в естественных языках. Каждый символ имеет конкретное назначение в контексте кода.

Кавычки

Одинарные и двойные кавычки

Для создания строковых литералов в JavaScript допустимо использование одинарных и двойных кавычек:

let name = "John";
let message = 'Hello!';

Выбор типа кавычек зависит от содержимого строки и принятого в проекте стиля кодирования. При наличии апострофа внутри строки удобнее использовать двойные кавычки:

let sentence = "He's a developer";

При наличии двойных кавычек внутри строки предпочтительнее одинарные кавычки:

let quote = '"Hello", she said';

Шаблонные строки

ES6 вводит шаблонные строки, использующие обратные кавычки:

let greeting = `Hello, ${name}`;

Шаблонные строки поддерживают интерполяцию переменных и многострочные литералы.

Стилевые соглашения

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

Точка, запятая и точка с запятой

Точка

Точка служит оператором доступа к свойствам и методам объектов:

console.log("Hello");
object.property;

Запятая

Запятая выполняет разделительную функцию в нескольких контекстах:

  • Разделение параметров функций
  • Разделение элементов массивов
  • Разделение объявлений переменных в одном операторе
let x = 1, y = 2, z = 3;
function greet(name, age) {}
const array = [1, 2, 3, 4];

Точка с запятой

Точка с запятой завершает операторы в JavaScript. Механизм автоматической вставки точек с запятой делает их необязательными в большинстве случаев, однако явное использование рекомендуется для предотвращения потенциальных ошибок:

let a = 5;
let b = 10;
console.log(a + b);

Явное применение точек с запятой особенно важно при работе с минификаторами кода и в строгих режимах выполнения.

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

Соглашение о приватности

Одинарное подчеркивание в начале имени свойства или метода сигнализирует о внутреннем использовании:

class MyClass {
constructor() {
this._logger = "internal";
}
}

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

Реальная приватность

Современный стандарт языка поддерживает настоящую приватность через символ решетки:

class MyClass {
#logger = "private";
}

Свойства с префиксом # недоступны извне класса.

Игнорирование в деструктуризации

Подчеркивание применяется для явного игнорирования элементов при деструктуризации массивов:

const [first, , third] = [1, 2, 3];
const [first, _, third] = [1, 2, 3];

Разделитель в числах

Подчеркивание улучшает читаемость числовых литералов:

const billion = 1_000_000_000;
const million = 1_000_000;

Вертикальная черта

Побитовое ИЛИ

Одинарная вертикальная черта представляет операцию побитового ИЛИ:

const result = valueA | valueB;

Логическое ИЛИ

Двойная вертикальная черта выполняет логическую операцию ИЛИ с коротким замыканием:

if (methodA() || methodB()) {
// methodB не вызывается, если methodA вернул истину
}

При использовании логического ИЛИ возвращается первый истинный операнд:

console.log(0 || "hello"); // "hello"
console.log(null || undefined || "default"); // "default"

Объединение типов в TypeScript

В системе типов TypeScript вертикальная черта обозначает объединение типов:

let value: string | number;
let status: "active" | "inactive" | "pending";

Такая конструкция определяет переменную, которая может принимать значения любого из перечисленных типов.