diff options
Diffstat (limited to 'files/uk/web/javascript/reference/operators/pipeline_operator')
-rw-r--r-- | files/uk/web/javascript/reference/operators/pipeline_operator/index.html | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/files/uk/web/javascript/reference/operators/pipeline_operator/index.html b/files/uk/web/javascript/reference/operators/pipeline_operator/index.html new file mode 100644 index 0000000000..496e425950 --- /dev/null +++ b/files/uk/web/javascript/reference/operators/pipeline_operator/index.html @@ -0,0 +1,87 @@ +--- +title: Конвеєрний оператор +slug: Web/JavaScript/Reference/Operators/Pipeline_operator +tags: + - JavaScript + - Експериментальний + - Оператор + - конвеєрний +translation_of: Web/JavaScript/Reference/Operators/Pipeline_operator +--- +<div>{{jsSidebar("Operators")}} {{SeeCompatTable}}</div> + +<p>Експериментальний конвеєрний оператор <code>|></code> (наразі на стадії 1) передає значення виразу у функцію. Це дозволяє створювати ланцюги функціональних викликів, які легко читаються. Результатом є синтаксичний цукор, у якому виклик функції з єдиним аргументом можна записати наступним чином:</p> + +<pre class="brush: js">let url = "%21" |> decodeURI;</pre> + +<p>Аналогічний виклик у традиційному синтаксисі виглядає так:</p> + +<pre class="brush: js">let url = decodeURI("%21"); +</pre> + +<h2 id="Синтаксис">Синтаксис</h2> + +<pre class="syntaxbox"><em>вираз</em> |> <em>функція</em> +</pre> + +<p>Значення вказаного <code>виразу</code> передається у <code>функцію</code> як її єдиний параметр.</p> + +<h3 id="Параметри">Параметри</h3> + +<p><code>expression</code></p> + +<p> Будь-який дозволений вираз.</p> + +<p><code>function</code></p> + +<p> Будь-яка функція.</p> + +<h2 id="Приклади">Приклади</h2> + +<h3 id="Ланцюги_функціональних_викликів">Ланцюги функціональних викликів</h3> + +<p>Конвеєрний оператор може покращити читабельність при створенні ланцюга з декількох функцій.</p> + +<pre class="brush: js">const double = (n) => n * 2; +const increment = (n) => n + 1; + +// без конвеєрного оператора +double(increment(double(double(5)))); // 42 + +// з конвеєрним оператором +5 |> double |> double |> increment |> double; // 42 +</pre> + +<h2 id="Специфікації">Специфікації</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Специфікація</th> + <th scope="col">Статус</th> + <th scope="col">Коментар</th> + </tr> + </thead> + <tbody> + <tr> + <td><a href="https://tc39.github.io/proposal-pipeline-operator/#sec-intro">Pipeline operator draft</a></td> + <td>Stage 1</td> + <td>Поки що не є частиною специфікації ECMAScript.</td> + </tr> + </tbody> +</table> + +<h2 id="Сумісність_з_веб-переглядачами">Сумісність з веб-переглядачами</h2> + +<div> + + +<p>{{Compat("javascript.operators.pipeline")}}</p> +</div> + +<h2 id="Див._також">Див. також</h2> + +<ul> + <li><a href="https://github.com/tc39/proposal-pipeline-operator">Github - Proposal-pipeline-operator</a></li> + <li><a href="https://github.com/tc39/proposals">TC39 proposals</a></li> +</ul> |