5.01. Знаки препинания
Знаки препинания
Два важных вопроса, которые мучают начинающих программистов:
- Когда использовать кавычки двойные (
"), одинарные ('), а когда апострофы (’)? - Когда использовать точки (
.), запятые (,) и точку с запятой (;)?
Оба типа кавычек допустимы для строк:
let name = "John";
let message = 'Hello!';
Выбор зависит от контента строки и личного/командного стиля:
let sentence = "He's a developer"; // удобнее двойные
let quote = '"Hello", she said'; // удобнее одинарные
ES6+ : шаблонные строки используют обратные кавычки ` :
let greeting = `Hello, ${name}`;
Апострофы (’) — не используются в JS как часть синтаксиса, но могут быть в строковых значениях.
В сообществе JS чаще используется одинарный стиль (особенно при использовании ESLint или Prettier), но всё зависит от стандарта проекта.
Точка (.) : используется для доступа к свойствам и методам объектов:
console.log("Hello");
Запятая (,) : разделяет параметры функций, элементы массивов, объявления переменных:
let x = 1, y = 2, z = 3;
function greet(name, age) {}
Точка с запятой (;) : не обязательна в JS благодаря ASI (Automatic Semicolon Insertion), но рекомендуется использовать для избежания ошибок:
let a = 5;
let b = 10;
console.log(a + b);
Используйте точки с запятой, особенно если вы работаете в строгих средах или с минификаторами.
Нижние подчеркивания «_» в JavaScript применяются по разному - иногда это стиль, а иногда синтаксис. Вообще, в языках программирования _одинарное подчеркивание часто используется как соглашение, чтобы обозначить какую-то внутренность или приватность поля или метода, а также бывает __двойное подчеркивание и _подчеркивание с двух сторон_.
_name — это соглашение о приватности, можно читать или менять. Но важно учесть, что классический JS не поддерживает приватность - но опять же, что за «приватность», мы узнаем из ООП.
class MyClass {
constructor() {
this._logger = "internal"; // просто соглашение
}
}
Современный JS поддерживает настоящую приватность через #:
class MyClass {
#logger = "private"; // реально приватно
}
_ может использоваться для игнорирования в деструктуризации, когда мы разбиваем массив на переменные, можем обозначить, что «это поле не трогать»:
const [first, , third] = [1, 2, 3]; // пропускаем второй
// или:
const [first, _, third] = [1, 2, 3]; // явно игнорируем
Также _ используется как разделитель в числах:
const billion = 1_000_000_000;
Символы «|» и «||» в JavaScript, C#, Java, C++ и Kotlin использутся в общем порядке:
| — это побитовое ИЛИ (bitwise OR).
К примеру, метод(значениеА | значениеБ);
В условиях это логическое ИЛИ, но без сокращённого вычисления.
if (методА() | методБ()) - вызовет и методА, и методБ, даже если методА - true.
|| - логическое ИЛИ (с сокращённым вычислением), можно назвать исключающим.
допустим return a || b - если a true, то b не вернется/не вычислится.
Важно отметить, что в JS логическое ИЛИ с сокращённым вычислением (||) используется так, что выбирается именно первое истинное значение, а не только true/false, к примеру 0 не будет истиной.
console.log(0 || "hello") // "hello"
Важно также уточнить, что | используется в TypeScript для обозначения типов:
let value: string | number; // может быть строкой или числом
Это совсем другое значение — тип объединения, не побитовое ИЛИ.