aboutsummaryrefslogtreecommitdiff
path: root/files/uk/web/javascript/reference/operators/logical_or
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/logical_or
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/logical_or')
-rw-r--r--files/uk/web/javascript/reference/operators/logical_or/index.html151
1 files changed, 151 insertions, 0 deletions
diff --git a/files/uk/web/javascript/reference/operators/logical_or/index.html b/files/uk/web/javascript/reference/operators/logical_or/index.html
new file mode 100644
index 0000000000..16dc2868bb
--- /dev/null
+++ b/files/uk/web/javascript/reference/operators/logical_or/index.html
@@ -0,0 +1,151 @@
+---
+title: Логічне АБО (||)
+slug: Web/JavaScript/Reference/Operators/Logical_OR
+tags:
+ - JavaScript
+ - Довідка
+ - Логічний оператор
+ - Оператор
+translation_of: Web/JavaScript/Reference/Operators/Logical_OR
+---
+<div>{{jsSidebar("Operators")}}</div>
+
+<p>Логічний оператор АБО (<code>||</code>) (логічна диз'юнкція) для набору операндів повертає true тільки якщо один чи більше з його операндів дорівнюють true. Зазвичай його використовують з {{jsxref("Boolean","булевими")}} (логічними) значеннями. В цьому випадку він повертає булеве значення. Однак, оператор <code>||</code> насправді повертає значення одного з наданих операндів, а отже, якщо цей оператор застосовується з не булевими значеннями, він поверне не булеве значення.</p>
+
+<div>{{EmbedInteractiveExample("pages/js/expressions-logical-or.html", "shorter")}}</div>
+
+<div class="hidden">The source for this interactive example is stored in a GitHub repository. If you'd like to contribute to the interactive examples project, please clone <a href="https://github.com/mdn/interactive-examples">https://github.com/mdn/interactive-examples</a> and send us a pull request.</div>
+
+<h2 id="Синтаксис">Синтаксис</h2>
+
+<pre class="syntaxbox notranslate"><em>вираз1</em> || <em>вираз2</em>
+</pre>
+
+<h2 id="Опис">Опис</h2>
+
+<p>Якщо <code>вираз<strong>1</strong></code> можна привести до <code>true</code>, вертає <code>вираз<strong>1</strong></code>; інакше, вертає <code>вираз<strong>2</strong></code>.</p>
+
+<p>Якщо значення може бути приведене до <code>true</code>, воно є так званим {{Glossary("truthy","правдивим")}} значенням. Якщо значення може бути приведене до <code>false</code>, воно називається {{Glossary("falsy","хибним")}}.</p>
+
+<p>Прикладами виразів, які можуть бути приведені до false, є:</p>
+
+<ul>
+ <li><code>null</code>;</li>
+ <li><code>NaN</code>;</li>
+ <li><code>0</code>;</li>
+ <li>порожній рядок (<code>""</code> або <code>''</code>, або <code>``</code>);</li>
+ <li><code>undefined</code>.</li>
+</ul>
+
+<p>Хоча оператор <code>||</code> може використовуватись з операндами не булевого типу, він все одно може вважатися булевим оператором, оскільки значення, які він повертає, завжди можуть бути приведені до <a href="/uk/docs/Web/JavaScript/Data_structures#%D0%A2%D0%B8%D0%BF_boolean">булевого примітиву</a>. Щоб явно перетворити повернені значення (або, взагалі, будь-який вираз) до відповідного булевого значення, скористайтесь подвійним <a href="/uk/docs/Web/JavaScript/Reference/Operators/Logical_Operators#Logical_NOT">оператором НЕ</a> або конструктором {{jsxref("Global_Objects/Boolean/Boolean", "Boolean")}}.</p>
+
+<h3 id="Обчислення_з_коротким_замиканням">Обчислення з коротким замиканням</h3>
+
+<p>Логічні вирази АБО обчислюються зліва направо, вони перевіряються на "коротке замикання" під час обчислення за наступним правилом:</p>
+
+<p><code>(якийсь правдивий вираз) || <em>expr</em></code> обчислюється як правдивий вираз.</p>
+
+<p>Коротке замикання означає, що частина <code><em>expr</em></code> у прикладі <strong>не обчислюється</strong>, тому будь-які побічні ефекти від цього не відбудуться (наприклад, якщо <code><em>expr</em></code> є викликом функції, виклику не станеться). Це відбувається тому, що значення оператора вже визначене після обчислення першого операнду. Дивіться приклад:</p>
+
+<pre class="brush: js notranslate">function A(){ console.log('викликано A'); return false; }
+function B(){ console.log('викликано B'); return true; }
+
+console.log( B() || A() );
+// виводить "викликано B" в результаті виклику функції,
+// потім виводить true (що є результатом виклику оператора)
+</pre>
+
+<h3 id="Пріоритет_операторів">Пріоритет операторів</h3>
+
+<p>Наступні вирази можуть виглядати еквівалентними, але це не так, оскільки оператор <code>&amp;&amp;</code> виконується перед оператором <code>||</code> (дивіться <a href="/uk/docs/Web/JavaScript/Reference/Operators/Operator_Precedence">Пріоритет операторів</a>).</p>
+
+<pre class="brush: js notranslate">true || false &amp;&amp; false // вертає true, оскільки &amp;&amp; виконується першим
+(true || false) &amp;&amp; false // вертає false, бо пріоритет операторів не застосовується</pre>
+
+<h2 id="Приклади">Приклади</h2>
+
+<h3 id="Використання_АБО">Використання АБО</h3>
+
+<p>Наступний код наводить приклади оператора <code>||</code> (логічне АБО).</p>
+
+<pre class="brush: js notranslate">o1 = true || true // t || t вертає true
+o2 = false || true // f || t вертає true
+o3 = true || false // t || f вертає true
+o4 = false || (3 == 4) // f || f вертає false
+o5 = 'Кіт' || 'Пес' // t || t вертає "Кіт"
+o6 = false || 'Кіт' // f || t вертає "Кіт"
+o7 = 'Кіт' || false // t || f вертає "Кіт"
+o8 = '' || false // f || f вертає false
+o9 = false || '' // f || f вертає ""
+o10 = false || varObject // f || об'єкт вертає varObject
+</pre>
+
+<div class="blockIndicator note">
+<p><strong>Заувага:</strong> Якщо ви використовуєте цей оператор для присвоєння значення за замовчуванням якійсь змінній, пам'ятайте, що будь-яке <em>хибне</em> значення не буде використане. Якщо вам потрібно лише відфільтрувати {{jsxref("null")}} або {{jsxref("undefined")}}, розгляньте <a href="/uk/docs/Web/JavaScript/Reference/Operators/Nullish_coalescing_operator">оператор null-об'єднання</a>.</p>
+</div>
+
+<h3 id="Правила_перетворення_для_булевих_значень">Правила перетворення для булевих значень</h3>
+
+<h4 id="Перетворення_І_на_АБО">Перетворення І на АБО</h4>
+
+<p>Наступна операція з <strong>булевими значеннями</strong>:</p>
+
+<pre class="brush: js notranslate">bCondition1 &amp;&amp; bCondition2</pre>
+
+<p>завжди дорівнює:</p>
+
+<pre class="brush: js notranslate">!(!bCondition1 || !bCondition2)</pre>
+
+<h4 id="Перетворення_АБО_на_І">Перетворення АБО на І</h4>
+
+<p>Наступна операція з <strong>булевими значеннями</strong>:</p>
+
+<pre class="brush: js notranslate">bCondition1 || bCondition2</pre>
+
+<p>завжди дорівнює:</p>
+
+<pre class="brush: js notranslate">!(!bCondition1 &amp;&amp; !bCondition2)</pre>
+
+<h3 id="Прибирання_вкладених_дужок">Прибирання вкладених дужок</h3>
+
+<p>Оскільки логічні вирази обчислюються зліва направо, завжди можна прибрати дужки зі складного виразу, дотримуючись певних правил.</p>
+
+<p>Наступна складена операція з <strong>булевими значеннями</strong>:</p>
+
+<pre class="brush: js notranslate">bCondition1 &amp;&amp; (bCondition2 || bCondition3)</pre>
+
+<p>завжди дорівнює:</p>
+
+<pre class="brush: js notranslate">!(!bCondition1 || !bCondition2 &amp;&amp; !bCondition3)</pre>
+
+<h2 id="Специфікації">Специфікації</h2>
+
+<table class="standard-table">
+ <thead>
+ <tr>
+ <th scope="col">Специфікація</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ </tr>
+ <tr>
+ <td>{{SpecName('ESDraft', '#prod-LogicalORExpression', 'Logical OR expression')}}</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Сумісність_з_веб-переглядачами">Сумісність з веб-переглядачами</h2>
+
+
+
+<p>{{Compat("javascript.operators.logical_or")}}</p>
+
+<h2 id="Див._також">Див. також</h2>
+
+<ul>
+ <li><a href="/uk/docs/Web/JavaScript/Reference/Operators/Nullish_coalescing_operator">Оператор null-об'єднання (<code>??</code>)</a></li>
+ <li>{{jsxref("Boolean")}}</li>
+ <li>{{Glossary("Truthy")}}</li>
+ <li>{{Glossary("Falsy")}}</li>
+</ul>