Jump to content

Вложенная цитата

(Перенаправлено из вложенной цитаты )

Вложенная цитата — это цитата , инкапсулированная внутри другой цитаты, образующая иерархию многоуровневую . Сосредотачиваясь на определенной цитате, необходимо интерпретировать ее в пределах ее объема. Вложенные цитаты могут использоваться в литературе (как во вложенном повествовании), речи и информатике (как в «мета»-операторах, которые ссылаются на другие высказывания как на строки ). Вложенные котировки могут сбивать с толку, пока их тщательно не оценят и пока каждый уровень котировок не будет рассмотрен в перспективе.

В литературе

[ редактировать ]

В языках, которые допускают вложенные кавычки и используют пунктуацию кавычек для обозначения прямой речи, иерархические подуровни кавычек обычно акцентируются путем чередования первичных и вторичных кавычек. Всесторонний анализ основных систем кавычек, используемых в основных системах письма, см. в разделе «Кавычки» .

В программировании на JavaScript

[ редактировать ]

Вложенные кавычки часто становятся проблемой при использовании ключевого слова eval . [1] Функция eval — это функция, которая преобразует и интерпретирует строку как реальный код JavaScript и запускает этот код. Если эта строка указана как литерал , то код должен быть написан как сама кавычка (и соответствующим образом экранироваться ).

Например:

eval("var a=3; alert();");

Этот код объявляет переменную a , которой присваивается значение 3 , и пользователю открывается пустое окно предупреждения.

Вложенные строки (уровень 2)

[ редактировать ]

Предположим, нам нужно было сделать кавычку внутри интерпретируемого кода, заключенного в кавычки. В JavaScript вы можете иметь только один подуровень неэкранированной кавычки, который должен быть альтернативой кавычке верхнего уровня. Если символ котировки 2-го уровня совпадает с символом первого уровня, эти кавычки необходимо экранировать. [2] Например:

alert("I don't need to escape here");
alert('Nor is it "required" here');
alert('But now I do or it won\'t work');

Вложенные строки (уровень 3 и выше)

[ редактировать ]

Кроме того, (в отличие от примера из литературы) вложенная кавычка третьего уровня должна быть экранирована, чтобы не конфликтовать с разделителями кавычек первого или второго уровня. Это верно независимо от инкапсуляции чередующихся символов. Каждый уровень после третьего должен быть рекурсивно экранирован для всех уровней кавычек, в которых он содержится. Сюда входит сам escape-символ, обратная косая черта («\»), которая экранируется сама по себе («\\»).

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

Вот несколько примеров, демонстрирующих некоторые из вышеперечисленных принципов:

document.write("<html><head></head><body><p>Hello, this is the body of the document.");
document.writeln("</p>");
document.write("<p>A newline in HTML code 
acts simply as whitespace, whereas a &lt;br&gt; starts a new line.");
document.write("</p></body></html>\n");

eval('eval(\"eval(\\\"alert(\\\\\\\"Now I\\\\\\\\\\\\\\\'m confused!\\\\\\\")\\\")\")');

Обратите внимание, что количество обратных косых черт увеличивается от 0 до 1, от 3 до 7 и до 15, что указывает на ⁠. Правило ⁠ для последовательно вложенных символов, означающее, что длина escape-последовательностей растет экспоненциально с глубиной кавычек.

См. также

[ редактировать ]
  1. ^ «Метод JavaScript eval()» .
  2. ^ «Строки JavaScript» .
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 56736c8afac449060040fb30f322a06d__1714843440
URL1:https://arc.ask3.ru/arc/aa/56/6d/56736c8afac449060040fb30f322a06d.html
Заголовок, (Title) документа по адресу, URL1:
Nested quotation - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)