aboutsummaryrefslogtreecommitdiff
path: root/files/uk/web/javascript/reference/global_objects/string/repeat
diff options
context:
space:
mode:
Diffstat (limited to 'files/uk/web/javascript/reference/global_objects/string/repeat')
-rw-r--r--files/uk/web/javascript/reference/global_objects/string/repeat/index.html119
1 files changed, 119 insertions, 0 deletions
diff --git a/files/uk/web/javascript/reference/global_objects/string/repeat/index.html b/files/uk/web/javascript/reference/global_objects/string/repeat/index.html
new file mode 100644
index 0000000000..101776ad15
--- /dev/null
+++ b/files/uk/web/javascript/reference/global_objects/string/repeat/index.html
@@ -0,0 +1,119 @@
+---
+title: String.prototype.repeat()
+slug: Web/JavaScript/Reference/Global_Objects/String/repeat
+tags:
+ - ECMAScript 2015
+ - JavaScript
+ - String
+ - метод
+ - рядок
+translation_of: Web/JavaScript/Reference/Global_Objects/String/repeat
+---
+<div>{{JSRef}}</div>
+
+<p>Метод <strong><code>repeat()</code></strong> створює та повертає новий рядок, що містить вказану кількість об'єднаних разом копій рядка, на якому він був викликаний.</p>
+
+<div>{{EmbedInteractiveExample("pages/js/string-repeat.html","shorter")}}</div>
+
+
+
+<h2 id="Синтаксис">Синтаксис</h2>
+
+<pre class="syntaxbox"><code><var>str</var>.repeat(<var>count</var>)</code>
+</pre>
+
+<h3 id="Параметри">Параметри</h3>
+
+<dl>
+ <dt><code><var>count</var></code></dt>
+ <dd>Ціле число в діапазоні між <code>0</code> та {{jsxref("Global_Objects/Number/POSITIVE_INFINITY", "+Infinity")}}, що вказує кількість повторів рядка.</dd>
+</dl>
+
+<h3 id="Значення_що_повертається">Значення, що повертається</h3>
+
+<p>Новий рядок, що містить вказану кількість копій наданого рядка.</p>
+
+<h3 id="Винятки">Винятки</h3>
+
+<ul>
+ <li>{{jsxref("Errors/Negative_repetition_count", "RangeError")}}: число повторів має бути невід'ємним.</li>
+ <li>{{jsxref("Errors/Resulting_string_too_large", "RangeError")}}: число повторів має бути меншим за нескінченість та не перевищувати максимальний розмір рядка.</li>
+</ul>
+
+<h2 id="Приклади">Приклади</h2>
+
+<pre class="brush: js">'абв'.repeat(-1) // RangeError
+'абв'.repeat(0) // ''
+'абв'.repeat(1) // 'абв'
+'абв'.repeat(2) // 'абвабв'
+'абв'.repeat(3.5) // 'абвабвабв' (count буде перетворений на ціле число)
+'абв'.repeat(1/0) // RangeError
+
+({ toString: () =&gt; 'абв', repeat: String.prototype.repeat }).repeat(2)
+// 'абвабв' (repeat() є загальним методом)
+</pre>
+
+<h2 id="Поліфіл">Поліфіл</h2>
+
+<p>Цей метод був доданий у специфікацію ECMAScript 2015 та може поки не бути доступним в усіх реалізаціях JavaScript. Однак, ви можете створити поліфіл <code>String.prototype.repeat()</code> за допомогою наступного коду:</p>
+
+<pre class="brush: js" dir="rtl">if (!String.prototype.repeat) {
+ String.prototype.repeat = function(count) {
+ 'use strict';
+ if (this == null)
+ throw new TypeError('неможливо перетворити ' + this + ' на об\'єкт');
+
+ var str = '' + this;
+ // Щоб перетворити рядок на ціле число.
+ count = +count;
+ // Перевірка на NaN
+ if (count != count)
+ count = 0;
+
+ if (count &lt; 0)
+ throw new RangeError('repeat count must be non-negative');
+
+ if (count == Infinity)
+ throw new RangeError('repeat count must be less than infinity');
+
+ count = Math.floor(count);
+ if (str.length == 0 || count == 0)
+ return '';
+
+ // Гарантія того, що count є цілим 31-бітним числом, дозволяє значно оптимізувати
+ // головну частину. Але, все ж, найновіші (серпень 2014) переглядачі не можуть
+ // впоратись з рядками з 1 &lt;&lt; 28 символів чи довше, а отже:
+ if (str.length * count &gt;= 1 &lt;&lt; 28)
+ throw new RangeError('repeat count must not overflow maximum string size');
+
+ var maxCount = str.length * count;
+ count = Math.floor(Math.log(count) / Math.log(2));
+ while (count) {
+ str += str;
+ count--;
+ }
+ str += str.substring(0, maxCount - str.length);
+ return str;
+ }
+}</pre>
+
+<h2 id="Специфікації">Специфікації</h2>
+
+<table class="standard-table">
+ <thead>
+ <tr>
+ <th scope="col">Специфікація</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>{{SpecName('ESDraft', '#sec-string.prototype.repeat', 'String.prototype.repeat')}}</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Сумісність_з_веб-переглядачами">Сумісність з веб-переглядачами</h2>
+
+<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p>
+
+<p>{{Compat("javascript.builtins.String.repeat")}}</p>