DamiRocK

JavaScript: кавычки внутри сообщения и экранирование апострофа

Выводим сообщение об удалении user’s_backup.zip с сохранением обоих видов кавычек. Проверяем ограничители и не принимаем печать текста за удаление файла.

Ограничитель и содержимое

Одинарные и двойные кавычки могут ограничивать обычный строковый литерал. Если внутри нужен такой же символ, его экранируют обратным слешем или выбирают другой внешний ограничитель. Пустая строка '' отличается от строки с пробелом ' '.

Задание источника

Выведите точно такое сообщение:

Do you want to delete "user's_backup.zip"?

Решение

console.log('Do you want to delete "user\'s_backup.zip"?');

Внешние кавычки одинарные, поэтому двойные вокруг имени файла остаются обычными символами текста. Апостроф в user’s записан как \', чтобы не завершить литерал раньше времени. Обратный слеш в этом месте не выводится.

Альтернативная запись того же значения

console.log("Do you want to delete \"user's_backup.zip\"?");

Теперь внешние кавычки двойные, а экранируются два внутренних двойных символа. Результат идентичен. Различаются исходные записи, не содержимое сообщения.

Обратные кавычки

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

Граница упражнения

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

Hexlet / Code Basics и участники · Исходный урок и решение · GNU AGPL v3. Сообщение сохранено; исполнение и текст разделены.

Reading preferences

Appearance
Contrast
More options

Saved only in this browser. Your device’s reduced-motion setting is always respected. Browser zoom works throughout the site.