Назад

July 6, 2025

🧵 Як не дати рядку в JavaScript "екранитись" автоматично

У JavaScript певні символи — наприклад, \ — мають спеціальне значення. Вони використовуються як escape-послідовності (\n, \t, \\ тощо), тому звичайний текстовий шлях:

'C:\\Foo\Bar\Fuzz\document.pdf';

насправді зберігається як:

C:\FooBarFuzzdocument.pdf

🤯 Всі \B, \F, \d — інтерпретуються як escape-послідовності, навіть якщо ти цього не хочеш.

Рішення: String.raw

Щоб зберегти рядок без обробки escape-послідовностей, використай тегований шаблон String.raw:

String.raw`C:\\Foo\Bar\Fuzz\document.pdf`;

✅ Результат:

C:\\Foo\Bar\Fuzz\document.pdf

Це зручно для:

  • шляхів до файлів (особливо у Windows);
  • регулярних виразів у вигляді рядків;
  • створення шаблонів без додаткового екранування.

String.raw — це ніби сказати JavaScript’у: “Це не твоя справа, просто залиш як є” 😄

Коротко:

  • JS автоматично обробляє escape-символи — не завжди так, як ти очікуєш.
  • String.raw дозволяє зберегти рядок буквально, без екранування.
  • Це must-have у шаблонах, шляхах, regexp.