aboutsummaryrefslogtreecommitdiff
path: root/files/uk/web/javascript/reference/operators/conditional_operator
diff options
context:
space:
mode:
authorPeter Bengtsson <mail@peterbe.com>2020-12-08 14:43:23 -0500
committerPeter Bengtsson <mail@peterbe.com>2020-12-08 14:43:23 -0500
commit218934fa2ed1c702a6d3923d2aa2cc6b43c48684 (patch)
treea9ef8ac1e1b8fe4207b6d64d3841bfb8990b6fd0 /files/uk/web/javascript/reference/operators/conditional_operator
parent074785cea106179cb3305637055ab0a009ca74f2 (diff)
downloadtranslated-content-218934fa2ed1c702a6d3923d2aa2cc6b43c48684.tar.gz
translated-content-218934fa2ed1c702a6d3923d2aa2cc6b43c48684.tar.bz2
translated-content-218934fa2ed1c702a6d3923d2aa2cc6b43c48684.zip
initial commit
Diffstat (limited to 'files/uk/web/javascript/reference/operators/conditional_operator')
-rw-r--r--files/uk/web/javascript/reference/operators/conditional_operator/index.html109
1 files changed, 109 insertions, 0 deletions
diff --git a/files/uk/web/javascript/reference/operators/conditional_operator/index.html b/files/uk/web/javascript/reference/operators/conditional_operator/index.html
new file mode 100644
index 0000000000..01c51d0d46
--- /dev/null
+++ b/files/uk/web/javascript/reference/operators/conditional_operator/index.html
@@ -0,0 +1,109 @@
+---
+title: Умовний (тернарний) оператор
+slug: Web/JavaScript/Reference/Operators/Conditional_Operator
+tags:
+ - Conditional
+ - JavaScript
+ - Оператор
+ - тернарний
+ - умовний
+translation_of: Web/JavaScript/Reference/Operators/Conditional_Operator
+---
+<div>{{jsSidebar("Operators")}}</div>
+
+<p><strong>Умовний (тернарний) оператор</strong> - це єдиний оператор JavaScript, який приймає три операнди: умову, за якою йде знак питання (<code>?</code>), далі вираз, який має виконатися, якщо умова {{Glossary("truthy","правдива")}}, далі двокрапка (<code>:</code>) і, нарешті, вираз, який має виконатись, якщо умова {{Glossary("falsy","хибна")}}. Цей оператор часто використовують в якості скорочення конструкції <a href="/uk/docs/Web/JavaScript/Reference/Statements/if...else"><code>if</code></a>.</p>
+
+<div>{{EmbedInteractiveExample("pages/js/expressions-conditionaloperators.html")}}</div>
+
+
+
+<h2 id="Синтаксис">Синтаксис</h2>
+
+<pre class="syntaxbox"><em>condition</em> ? <em>exprIfTrue</em> : <em>exprIfFalse</em> </pre>
+
+<h3 id="Параметри">Параметри</h3>
+
+<dl>
+ <dt><code>condition</code></dt>
+ <dd>Вираз, який використовується в якості умови.</dd>
+ <dt><code>exprIfTrue</code></dt>
+ <dd>Вираз, який виконується, якщо вираз <code>condition</code> оцінений як {{Glossary("truthy", "правдивий")}} (який дорівнює або може бути приведений до <code>true</code>).</dd>
+ <dt><code>exprIfFalse</code></dt>
+ <dd>Вираз, який виконується, якщо вираз <code>condition</code> є {{Glossary("falsy", "хибним")}} (тобто, його значення може бути приведене до <code>false</code>).</dd>
+</dl>
+
+<h2 id="Опис">Опис</h2>
+
+<p>Окрім <code>false</code>, можливими хибними значеннями є: <code>null</code>, <code>NaN</code>, <code>0</code>, порожній рядок (<code>""</code>) та <code><code><code><code>undefined</code></code></code></code>. Якщо <em><code>condition</code> </em>дорівнює будь-якому з них, результатом умовного виразу буде результат виконання виразу <code>exprIfFalse</code>.</p>
+
+<p>Простий приклад:</p>
+
+<pre class="brush: js">var age = 26;
+var beverage = (age &gt;= 21) ? "Пиво" : "Сік";
+console.log(beverage); // "Пиво"
+</pre>
+
+<p>Одним з типових використань є обробка значення, яке може дорівнювати <code>null</code>:</p>
+
+<pre class="brush: js">function greeting(person) {
+ var name = person ? person.name : "незнайомець";
+ return "Привіт, " + name;
+}
+
+console.log(greeting({name: 'Аліса'})); // "Привіт, Аліса"
+console.log(greeting(null)); // "Привіт, незнайомець"​​​​​
+</pre>
+
+<div class="blockIndicator note">
+<p><strong>Заувага:</strong> <a href="/uk/docs/Web/JavaScript/Reference/Operators/Optional_chaining">Оператор необов'язкового ланцюгування </a>був створений для використання у таких випадках. На момент написання (липень 2019), він досі є експериментальним і не був реалізований.</p>
+</div>
+
+<h3 id="Умовні_ланцюги">Умовні ланцюги</h3>
+
+<p>Тернарний оператор є правоасоціативним, це означає, що він може створювати ланцюги наступним чином, схоже на ланцюг <code>if … else if … else if … else</code>:</p>
+
+<pre class="brush: js">function example(…) {
+  return condition1 ? value1
+  : condition2 ? value2
+  : condition3 ? value3
+  : value4;
+}
+
+// Є еквівалентом:
+
+function example(…) {
+ if (condition1) { return value1; }
+ else if (condition2) { return value2; }
+ else if (condition3) { return value3; }
+ else { return value4; }
+}
+</pre>
+
+<h2 id="Специфікації">Специфікації</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Специфікація</th>
+ </tr>
+ <tr>
+ <td>{{SpecName('ESDraft', '#sec-conditional-operator', 'Conditional Operator')}}</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Сумісність_з_веб-переглядачами">Сумісність з веб-переглядачами</h2>
+
+
+
+<p>{{Compat("javascript.operators.conditional")}}</p>
+
+<h2 id="Див._також">Див. також</h2>
+
+<ul>
+ <li><a href="/uk/docs/Web/JavaScript/Reference/Statements/if...else">Оператор if</a></li>
+ <li><a href="/uk/docs/Web/JavaScript/Reference/Operators/Nullish_coalescing_operator">Оператор null-об'єднання</a></li>
+ <li><a href="/uk/docs/Web/JavaScript/Reference/Operators/Optional_chaining">Необов'язкове ланцюгування</a></li>
+ <li><a href="/uk/docs/Learn/JavaScript/Building_blocks/conditionals">Making decisions in your code — conditionals</a></li>
+ <li><a href="/uk/docs/Web/JavaScript/Guide/Вирази_та_оператори">Вирази та оператори</a></li>
+</ul>