Logo
Книга для начинающих
ВходРегистрация
/
Программирование
/
Курс JavaScript
/

Экранирующие последовательности

JavaScript: Экранирующие последовательности

Допустим, мы хотим вывести текст ниже в две строчки.

- Are you hungry?
- Aaaarrrgh!

Если мы просто передадим этот текст в console.log(), то JavaScript напечатает всё в одну строчку. Технически можно написать два подряд идущих console.log(), но представим, что мы хотим это сделать с помощью одного.

console.log('- Are you hungry?- Aaaarrrgh!');
// => - Are you hungry?- Aaaarrrgh!

Чтобы каждая из них начиналась с новой строки, нужно добавить перевод строки, то есть «нажать Enter». В программировании это реализуется через добавление специальных символов, в данном случае \n. Да, это не опечатка. Несмотря на то, что мы видим здесь два символа, с точки зрения JavaScript это один символ.

console.log('- Are you hungry?\n- Aaaarrrgh!');

Результат будет таким.

- Are you hungry?
- Aaaarrrgh!

Что такое \n?

\n является управляющей последовательностью (англ. escape sequence, иногда говорят «экранированная последовательность»). Она обозначает перевод строки, но не отображается напрямую. Вы не увидите \n в выводе программы, так как она влияет только на расположение текста.

В текстовых редакторах при нажатии Enter добавляется невидимый символ LF (Line Feed). Именно его и означает \n. Иногда такие символы можно увидеть, если включить отображение спецсимволов.

- Привет!¶
- О, привет!¶
- Как дела?

Принтеры, редакторы и интерпретаторы JavaScript понимают \n как команду начать строку с новой строки.

Примеры использования \n

Вот как JavaScript обрабатывает управляющую последовательность \n.

В коде       'Hello\nWorld'
                   ↓
На экране    Hello
             World

Местоположение \n меняет итоговый вывод.

console.log('Hello\nWorld');
// Hello
// World

console.log('Hello \nWorld');
// Hello 
// World  (в конце первой строки есть пробел)

console.log('Hello\n World');
// Hello
//  World  (во второй строке в начале пробел)

console.log('Hello\n\nWorld');
// Hello
//
// World  (пустая строка между ними)

Пробелы до или после \n также учитываются. JavaScript воспринимает их как обычные символы и отображает в выводе.

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

console.log('First line');
console.log('\n');          // просто пустая строка
console.log('Second line');

Результат будет таким.

First line

Second line

Как вывести сам символ \n

\n в JavaScript является управляющей последовательностью. Она управляет расположением текста и не выводится на экран как обычные символы. Если вам нужно вывести именно символы \ и n, а не перевод строки, их нужно экранировать. Для этого перед обратным слешем добавляют ещё один слеш.

console.log('Hello\\nWorld');
// Hello\nWorld

// Если забыть указать второй слеш
console.log('Hello\nWorld');
// Hello
// World

В этом случае JavaScript понимает \\ как обычный обратный слеш и показывает строку без перевода строки.

Другие управляющие последовательности

Кроме \n, в JavaScript есть и другие управляющие последовательности.

  • \t обозначает табуляцию (эквивалент клавиши Tab).
  • \r обозначает возврат каретки (используется в Windows, но редко применяется в современном коде).
  • В программировании чаще всего используют именно \n, его достаточно для большинства задач.

Важные детали

  • \n является одним символом, несмотря на то, что в коде он записан как два (\ и n).
  • На Windows по умолчанию используется комбинация \r\n, но в JavaScript (и вообще в кроссплатформенной разработке) принято использовать только \n, чтобы избежать проблем при переносе кода между системами.

Задание

Вы пишете программу, которая показывает пользователю подсказку о том, как разбить текст на строки. Выведите подсказку одним вызовом console.log():

Use "\n" to separate lines
Example: console.log("line1\nline2")

Обратите внимание: \n в первой строке — это буквальный текст, а не перевод строки.

Коммерческий опыт и Трудоустройство

Полезное

  • История перевода строки

Команда проекта находится в телеграм-сообществе. Там можно задать любой вопрос и повлиять на проект

Нашли ошибку? Есть что добавить? Пулреквесты приветствуются
/
Программирование
/
Курс JavaScript
/

Экранирующие последовательности

JavaScript: Экранирующие последовательности

Допустим, мы хотим вывести текст ниже в две строчки.

- Are you hungry?
- Aaaarrrgh!

Если мы просто передадим этот текст в console.log(), то JavaScript напечатает всё в одну строчку. Технически можно написать два подряд идущих console.log(), но представим, что мы хотим это сделать с помощью одного.

console.log('- Are you hungry?- Aaaarrrgh!');
// => - Are you hungry?- Aaaarrrgh!

Чтобы каждая из них начиналась с новой строки, нужно добавить перевод строки, то есть «нажать Enter». В программировании это реализуется через добавление специальных символов, в данном случае \n. Да, это не опечатка. Несмотря на то, что мы видим здесь два символа, с точки зрения JavaScript это один символ.

console.log('- Are you hungry?\n- Aaaarrrgh!');

Результат будет таким.

- Are you hungry?
- Aaaarrrgh!

Что такое \n?

\n является управляющей последовательностью (англ. escape sequence, иногда говорят «экранированная последовательность»). Она обозначает перевод строки, но не отображается напрямую. Вы не увидите \n в выводе программы, так как она влияет только на расположение текста.

В текстовых редакторах при нажатии Enter добавляется невидимый символ LF (Line Feed). Именно его и означает \n. Иногда такие символы можно увидеть, если включить отображение спецсимволов.

- Привет!¶
- О, привет!¶
- Как дела?

Принтеры, редакторы и интерпретаторы JavaScript понимают \n как команду начать строку с новой строки.

Примеры использования \n

Вот как JavaScript обрабатывает управляющую последовательность \n.

В коде       'Hello\nWorld'
                   ↓
На экране    Hello
             World

Местоположение \n меняет итоговый вывод.

console.log('Hello\nWorld');
// Hello
// World

console.log('Hello \nWorld');
// Hello 
// World  (в конце первой строки есть пробел)

console.log('Hello\n World');
// Hello
//  World  (во второй строке в начале пробел)

console.log('Hello\n\nWorld');
// Hello
//
// World  (пустая строка между ними)

Пробелы до или после \n также учитываются. JavaScript воспринимает их как обычные символы и отображает в выводе.

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

console.log('First line');
console.log('\n');          // просто пустая строка
console.log('Second line');

Результат будет таким.

First line

Second line

Как вывести сам символ \n

\n в JavaScript является управляющей последовательностью. Она управляет расположением текста и не выводится на экран как обычные символы. Если вам нужно вывести именно символы \ и n, а не перевод строки, их нужно экранировать. Для этого перед обратным слешем добавляют ещё один слеш.

console.log('Hello\\nWorld');
// Hello\nWorld

// Если забыть указать второй слеш
console.log('Hello\nWorld');
// Hello
// World

В этом случае JavaScript понимает \\ как обычный обратный слеш и показывает строку без перевода строки.

Другие управляющие последовательности

Кроме \n, в JavaScript есть и другие управляющие последовательности.

  • \t обозначает табуляцию (эквивалент клавиши Tab).
  • \r обозначает возврат каретки (используется в Windows, но редко применяется в современном коде).
  • В программировании чаще всего используют именно \n, его достаточно для большинства задач.

Важные детали

  • \n является одним символом, несмотря на то, что в коде он записан как два (\ и n).
  • На Windows по умолчанию используется комбинация \r\n, но в JavaScript (и вообще в кроссплатформенной разработке) принято использовать только \n, чтобы избежать проблем при переносе кода между системами.

Задание

Вы пишете программу, которая показывает пользователю подсказку о том, как разбить текст на строки. Выведите подсказку одним вызовом console.log():

Use "\n" to separate lines
Example: console.log("line1\nline2")

Обратите внимание: \n в первой строке — это буквальный текст, а не перевод строки.

Коммерческий опыт и Трудоустройство

Полезное

  • История перевода строки

Команда проекта находится в телеграм-сообществе. Там можно задать любой вопрос и повлиять на проект

Нашли ошибку? Есть что добавить? Пулреквесты приветствуются
← ПредыдущийСледующий →
← ПредыдущийСледующий →
← ПредыдущийСледующий →

Ваше упражнение проверяется по этим тестам

// @ts-check

import { expect, test, vi } from 'vitest';

test('escape characters', async () => {
  const consoleLogSpy = vi.spyOn(console, 'log');
  await import('./index.js');

  const firstArg = consoleLogSpy.mock.calls.join('\n');

  expect(firstArg).toBe(
    'Use "\\n" to separate lines\nExample: console.log("line1\\nline2")',
  );
});
← ПредыдущийСледующий →

Решение учителя откроется через:

20:00

waiting_clock
← ПредыдущийСледующий →