From 218934fa2ed1c702a6d3923d2aa2cc6b43c48684 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:43:23 -0500 Subject: initial commit --- .../reference/global_objects/string/raw/index.html | 117 +++++++++++++++++++++ 1 file changed, 117 insertions(+) create mode 100644 files/uk/web/javascript/reference/global_objects/string/raw/index.html (limited to 'files/uk/web/javascript/reference/global_objects/string/raw') diff --git a/files/uk/web/javascript/reference/global_objects/string/raw/index.html b/files/uk/web/javascript/reference/global_objects/string/raw/index.html new file mode 100644 index 0000000000..6383506ec5 --- /dev/null +++ b/files/uk/web/javascript/reference/global_objects/string/raw/index.html @@ -0,0 +1,117 @@ +--- +title: String.raw() +slug: Web/JavaScript/Reference/Global_Objects/String/raw +tags: + - ECMAScript 2015 + - JavaScript + - String + - метод + - рядок +translation_of: Web/JavaScript/Reference/Global_Objects/String/raw +--- +
{{JSRef}}
+ +

Статичний метод String.raw() є функцією-тегом шаблонних літералів. Він схожий на префікс r у мові Python, або на префікс @ у мові C# для рядкових літералів. (Але вони не ідентичні; дивіться пояснення у цій проблемі.) Він використовується для отримання сирої рядкової форми шаблонних рядків, тобто, підстановки (наприклад, ${foo}) обробляються, а екранування (наприклад, \n) ні.

+ +
{{EmbedInteractiveExample("pages/js/string-raw.html")}}
+ +

Синтаксис

+ +
String.raw(callSite, ...substitutions)
+
+String.raw`templateString`
+
+ +

Параметри

+ +
+
callSite
+
Добре сформований об'єкт-шаблон точки виклику, наприклад { raw: ['раз', 'два', 'три'] }.
+
...substitutions
+
Містить значення підстановок.
+
templateString
+
{{jsxref("template_strings", "Шаблонний рядок")}}, може містити підстановки (${...}).
+
+ +

Значення, що вертається

+ +

Сира рядкова форма наданого шаблонного рядка.

+ +

Винятки

+ +
+
{{jsxref("TypeError")}}
+
Помилка {{jsxref("TypeError")}} викидається, якщо перший аргумент не є добре сформованим об'єктом.
+
+ +

Опис

+ +

У більшості випадків String.raw() використовується з шаблонними рядками. Перший синтаксис, наведений вище, використовується лише зрідка, тому що рушій JavaScript викличе його для вас з правильними аргументами (як і інші функції-теги).

+ +

String.raw() - єдина вбудована функція-тег шаблонних рядків. Вона працює як звичайна шаблонна функція та виконує об'єднання. Ви навіть можете перевизначити її звичайним кодом JavaScript.

+ +

Приклади

+ +

Використання String.raw()

+ +
String.raw`Привіт\n${2+3}!`;
+// 'Привіт\n5!', символ після 'Привіт' -
+// це не символ нового рядка,
+// '\' та 'n' є двома символами.
+
+String.raw`Привіт\u000A!`;
+// 'Привіт\u000A!', те саме тут, цього разу ми отримуємо
+//  6 символів, \, u, 0, 0, 0, A.
+// Усі символи екранування будут неефективні,
+// а зворотні слеши будуть присутні у отриманому рядку.
+// Ви можете підтвертиди це, перевіривши властивість рядка .length.
+
+let name = 'Боб';
+String.raw`Привіт,\nце ${name}!`;
+// 'Привіт,\nце Боб!', підстановки обробляються.
+
+// Зазвичай, ви б не викликали String.raw() як функцію,
+// але, щоб симулювати `раз${2 + 3}два${'Java' + 'Script'}три`, можна зробити:
+String.raw({
+  raw: ['раз', 'два', 'три']
+}, 2 + 3, 'Java' + 'Script'); // 'раз5дваJavaScriptтри'
+// Зауважте, що перший аргумент - об'єкт з властивістю 'raw',
+// чиїм значенням є ітерабельний об'єкт, що представляє відокремлені рядки
+// у шаблонному літералі.
+// Решта аргументів - це підстановки.
+
+// Значенням 'raw' першого аргументу може бути будь-який ітерабельний об'єкт,
+// навіть рядок! Наприклад, 'тест' сприймається як ['т', 'е', 'с', 'т'].
+// Наступний код еквівалентний цьому
+// `т${0}е${1}с${2}т`:
+String.raw({ raw: 'тест' }, 0, 1, 2); // 'т0е1с2т'
+
+ +

Специфікації

+ + + + + + + + + + + + +
Специфікація
{{SpecName('ESDraft', '#sec-string.raw', 'String.raw')}}
+ +

Сумісність з веб-переглядачами

+ + + +

{{Compat("javascript.builtins.String.raw")}}

+ +

Див. також

+ + -- cgit v1.2.3-54-g00ecf