В JavaScript экранирование кавычек используется для того, чтобы включать кавычки внутри строковых литералов без нарушения синтаксиса.
Рассмотрим основные способы экранирования кавычек.
Если строка заключена в одинарные кавычки, то одинарные кавычки внутри этой строки нужно экранировать с помощью обратной косой черты \
:
let singleQuote = 'This is how you can include a single quote (\') inside a single-quoted string.';
console.log(singleQuote);
// This is how you can include a single quote (') inside a single-quoted string.
Аналогично, если строка заключена в двойные кавычки, то двойные кавычки внутри этой строки нужно экранировать:
let doubleQuote = "This is how you can include a double quote (\") inside a double-quoted string.";
console.log(doubleQuote);
// This is how you can include a double quote (") inside a double-quoted string.
Одинарные кавычки внутри строки, заключенной в двойные кавычки, и наоборот, не требуют экранирования:
let mixedQuotes1 = "This is a string with 'single quotes' inside double quotes.";
let mixedQuotes2 = 'This is a string with "double quotes" inside single quotes.';
console.log(mixedQuotes1);
// This is a string with 'single quotes' inside double quotes.
console.log(mixedQuotes2);
// This is a string with "double quotes" inside single quotes.
В шаблонных строках (template literals), которые заключены в обратные кавычки, кавычки также не требуют экранирования, если используются одинарные или двойные кавычки. Однако, если внутри шаблонной строки нужно включить обратную косую черту, её необходимо экранировать:
let templateLiteral = `This is a template literal with 'single quotes' and "double quotes".`;
console.log(templateLiteral);
// This is a template literal with 'single quotes' and "double quotes".
let backslash = `This is how you include a backslash (\\) in a template literal.`;
console.log(backslash);
// This is how you include a backslash (\) in a template literal.
Кроме кавычек, в строках могут использоваться и другие специальные символы, которые также требуют экранирования. Например, новая строка \n
, табуляция \t
и другие:
let specialCharacters = 'This is a string with a newline character.\nAnd this is the new line.';
console.log(specialCharacters);
// This is a string with a newline character.
// And this is the new line.