Создание пирамиды звезд в JavaScript: document.write и '\n'
Быстрый ответ
Для осуществления переноса строки в HTML-контенте используйте <br>:
document.getElementById("container").innerHTML += "<br>";
Если же нужно вставить перенос строки в текстовых полях или текстовых областях, используйте специальный символ переноса строки '\n':
document.querySelector("textarea").value += "\n";

Контекст использования: "\n" против "<br>"
В предварительно отформатированных контекстах, таких как <pre>, текстовые полях или консольных логах, символ '\n' заменяется переносом строки. В HTML-контенте для создания новой строки грамотно использовать тег <br>.
Создание новых строк в DOM
Для манипуляций с DOM старайтесь избегать использование document.write, так как это может привести к удалению текущего контента. Взамен, воспользуйтесь следующими методами:
let newLine = document.createElement("br"); // создаем элемент с новой строкой
document.body.appendChild(newLine); // добавляем элемент в тело документа
Для добавления нескольких строк рекомендуется использование цикла:
let content = document.getElementById("content");
for (let i = 0; i < 3; i++) {
content.appendChild(document.createElement("br"));
}
Использование новых строк и CSS: Идеальное сочетание
С помощью CSS вы можете воспользоваться свойством white-space: pre;, которое сохранит пробелы и переносы строк в HTML. Такое действие позволит отобразить '\n' в виде переноса строки:
preformatted {
white-space: pre;
}
Визуализация
Представьте себе механизм печатной машинки, где нажатие на кнопку 'Enter' перемещает каретку и прокручивает бумагу, благодаря чему возможна печать с новой строки.
JavaScript-печатная машинка:
document.write('Дорогой дневник,');
document.write('<br>'); // Нажали Enter!
document.write('Сегодня был выдающийся день!');
В результате получаем:
Дорогой дневник,
Сегодня был выдающийся день!
Таково действие <br> — это 'Enter' для вашего электронного дневника.
Использование переводов строк в циклах для эффекта “вау”!
Циклы с символом новой строки '\n' отлично подходят для создания текстовых узоров, например пирамиды из звёздочек.
let pyramid = "";
for(let i = 1; i <= 5; i++){
pyramid += "*".repeat(i) + '\n';
}
console.log(pyramid);
Такой подход позволяет создать небольшую пирамиду в теге <pre> или сразу же в консоли.
"document.write"? Нет, спасибо. У нас есть что-то получше!
В современных веб-приложениях использование document.write считается неприемлемым. Вместо этого лучше воспользоваться:
Node.textContentдля добавления текста без риска исполнения HTML-тегов.Element.innerHTMLдля вставки HTML.
Используем <p>
Часто для структурирования контента используется тег <p>, который обеспечивает чёткую разметку и распределяет пространство между текстовыми блоками.
Работа с пробелами с использованием контейнеров вывода
В контейнерах вывода, таких как div и pre, символ '\n' правильно интерпретирует переносы строк при использовании свойства white-space со значением pre или pre-wrap:
let outputContainer = document.getElementById('output');
outputContainer.style.whiteSpace = 'pre'; // Заставим браузер верно отображать пробелы!
outputContainer.textContent += 'Первая строка.\nВторая строка.';
Полезные материалы
- Document Object Model (DOM) – Web APIs | MDN — главное пособие для знакомства с веб-разработкой и работой с DOM.
- Вывод данных в JavaScript — информация о выводе данных в JavaScript, включая создание новых строк.
- Как заменить все переводы строк в строке элементами <br />? на Stack Overflow — подсказки по вставке переводов строки в JavaScript.
- HTML-тег br — краткий обзор использования тега
<br />для создания новых строк в HTML. - Свойство Element: innerHTML – Web APIs | MDN — подробное руководство по применению
innerHTMLдля работы с HTML-контентом. - Изменение документа — полное руководство по динамическому изменению документа с использованием JavaScript.
- Метод Node: appendChild() – Web APIs | MDN — детальное описание метода
appendChild()для добавления узлов, включая текстовые узлы для новых строк.


