У 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.