Использование и разница между ` и ' в JavaScript

Пройдите тест, узнайте какой профессии подходите

Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Быстрый ответ

В JavaScript обратные кавычки (` ) используются для форматирования шаблонных литералов, что облегчает вставку переменных и выражений в строку с помощью ${...}. Благодаря этому, упрощается создание многострочных текстов.

Взгляните на пример:

JS
Скопировать код
let product = 'кофе';
let price = 2.99;
// Элегантное объединение строк 👦🏻🦾
console.log(`Один ${product} стоит $${price}.`); // Результат: Один кофе стоит $2.99.
Кинга Идем в IT: пошаговый план для смены профессии

Возможности, которые дают обратные кавычки

Интерполяция строк

С использованием обратных кавычек в строки можно вносить выражения JavaScript, применяя ${выражение}. Значением может быть что угодно — начиная от простых переменных и заканчивая сложными вызовами функций.

JS
Скопировать код
let timeOfDay = 'утро';
let greeting = `Доброе ${timeOfDay}!`; // Насколько просто!

let exclamation = () => "!!!";
console.log(`Добавим немного вдохновения${exclamation()}`); // Вызываем функцию на месте, чтобы произвести замену.

Многострочные строки

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

JS
Скопировать код
console.log(`Розы красны,
             // Да, эта JavaScript-поэзия 📜
Фиалки сини,
Я обожаю обратные кавычки
И рекомендую их вам!`);

Обход кавычек

Внутри шаблонных литералов можно без затруднений использовать одинарные ('') и двойные ("") кавычки без необходимости экранирования. Поздравляем, теперь вам не придется сталкиваться с головной болью из-за лишних слэшей!

JS
Скопировать код
console.log(`Он сказал: "Я готов."`); // Всё прекрасно и без лишних слешей!

Применение тегов к шаблонным строкам

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

JS
Скопировать код
function myTag(strings, ...values) {
  // Ваша логика здесь
}
let name = 'Джон';
console.log(myTag`Привет, ${name}!`); // Благодаря тегам приветствие стало интереснее.

Метод String.raw() и свойство .raw

Метод String.raw() позволяет работать со строками таким образом, как будто бы они не были обработаны, то есть сохраняется их исходное представление.

JS
Скопировать код
function getRawString() {
  return String.raw`Это сырая строка \n`;
}
// Обратите внимание, как символ '\n' выглядит в сыром виде 💪🏻
console.log(getRawString()); // Выводится исходный вариант: "Это \n сырая строка", без перевода строки.

Визуализация

Продумайте о шаблонных строках как об инструменте (🧰):

Markdown
Скопировать код
- Текстовые блоки 🧰 : Постоянные части строки
- Заполнители `${}` ⚙️: Динамические элементы
Markdown
Скопировать код
🧰 Статичный текст ⚙️ Выражение 🧰 Дополнительный статичный текст ⚙️ Другое выражение 🧰

Работа с обратными кавычками

Шаблонные строки в styled-components

В таких библиотеках, как styled-components, обратные кавычки применяются для стилизации компонентов посредством CSS-in-JS.

JS
Скопировать код
import styled from 'styled-components';

const Button = styled.button`
  /* Динамический стиль? Это стильно, модно и молодежно. */
  background-color: ${props => props.primary ? 'синий' : 'серый'};
  color: белый;
`;

Экранирование обратных кавычек

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

JS
Скопировать код
const escapedBacktick = `Вот так происходит экранирование обратных кавычек: \` `;
console.log(escapedBacktick); // Вывод: Вот так происходит экранирование обратных кавычек: `

Полезные материалы

  1. Шаблонные литералы (Шаблонные строки) – JavaScript | MDNдетальное руководство и справочник по шаблонным литералам в JavaScript.
  2. ES6 подробно: Шаблонные строки – Mozilla Hacks – блог разработчиковполный анализ шаблонных строк, вводимых в ES6.
  3. Шаблонные строки: встроенные DSL в ECMAScript 6 — изучение интерполяции и DSL при помощи шаблонных литералов.
  4. 8. Шаблонные литералы – Exploring JS — информация о тегированных шаблонных литералах.
  5. Легкое создание HTML с использованием шаблонных строк JavaScript – Wes Bos — применение шаблонных литералов для создания динамического HTML.
  6. TypeScript: Документация – Литеральные типы шаблонов — как TypeScript расширяет возможности шаблонных литералов.
  7. Шаблонные литералы | CSS-Tricks — обзор и примеры практического использования, полезные для разработчиков.
Свежие материалы