diff options
Diffstat (limited to 'files/uk/web/javascript/reference/operators/logical_and')
| -rw-r--r-- | files/uk/web/javascript/reference/operators/logical_and/index.html | 142 |
1 files changed, 0 insertions, 142 deletions
diff --git a/files/uk/web/javascript/reference/operators/logical_and/index.html b/files/uk/web/javascript/reference/operators/logical_and/index.html deleted file mode 100644 index c8d1ccaae6..0000000000 --- a/files/uk/web/javascript/reference/operators/logical_and/index.html +++ /dev/null @@ -1,142 +0,0 @@ ---- -title: Логічне І (&&) -slug: Web/JavaScript/Reference/Operators/Logical_AND -tags: - - JavaScript - - Довідка - - Логічний оператор - - Оператор -translation_of: Web/JavaScript/Reference/Operators/Logical_AND ---- -<div>{{jsSidebar("Operators")}}</div> - -<p>Логічний оператор І (<code>&&</code>) (логічна кон'юнкція) для набору операндів дорівнює true тільки тоді, коли усі його операнди дорівнюють true. Він зазвичай використовується з {{jsxref("Boolean","булевими")}} (логічними) значеннями. У цьому випадку він повертає булеве значення. Однак, оператор <code>&&</code> насправді повертає значення одного з наданих операндів, а отже, якщо цей оператор застосовується не з булевими значеннями, він поверне не булеве значення.</p> - -<div>{{EmbedInteractiveExample("pages/js/expressions-logical-and.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>2</strong></code>; інакше, вертає <code>вираз<strong>1</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> та <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( A() && B() ); -// виводить "викликано A" в результаті виклику функції, -// потім виводить false (що є результатом виклику оператора) -</pre> - -<h3 id="Пріоритет_операторів">Пріоритет операторів</h3> - -<p>Наступні вирази можуть виглядати еквівалентними, але це не так, оскільки оператор <code>&&</code> виконується перед оператором <code>||</code> (дивіться <a href="/uk/docs/Web/JavaScript/Reference/Operators/Operator_Precedence">Пріоритет операторів</a>).</p> - -<pre class="brush: js notranslate">true || false && false // вертає true, оскільки && виконується першим -(true || false) && false // вертає false, бо пріоритет операторів не застосовується</pre> - -<h2 id="Приклади">Приклади</h2> - -<h3 id="Використання_І">Використання І</h3> - -<p>Наступний код наводить приклади оператора <code>&&</code> (логічне І).</p> - -<pre class="brush: js notranslate">a1 = true && true // t && t вертає true -a2 = true && false // t && f вертає false -a3 = false && true // f && t вертає false -a4 = false && (3 == 4) // f && f вертає false -a5 = 'Кіт' && 'Пес' // t && t вертає "Пес" -a6 = false && 'Кіт' // f && t вертає false -a7 = 'Кіт' && false // t && f вертає false -a8 = '' && false // f && f вертає "" -a9 = false && '' // f && f вертає false</pre> - -<h3 id="Правила_перетворення_для_булевих_значень">Правила перетворення для булевих значень</h3> - -<h4 id="Перетворення_І_на_АБО">Перетворення І на АБО</h4> - -<p>Наступна операція з <strong>булевими значеннями</strong>:</p> - -<pre class="brush: js notranslate">bCondition1 && 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 && !bCondition2)</pre> - -<h3 id="Прибирання_вкладених_дужок">Прибирання вкладених дужок</h3> - -<p>Оскільки логічні вирази обчислюються зліва направо, завжди можна прибрати дужки зі складного виразу, дотримуючись певних правил.</p> - -<p>Наступна складена операція з <strong>булевими значеннями</strong>:</p> - -<pre class="brush: js notranslate">bCondition1 || (bCondition2 && bCondition3)</pre> - -<p>завжди дорівнює:</p> - -<pre class="brush: js notranslate">bCondition1 || bCondition2 && bCondition3</pre> - -<h2 id="Специфікації">Специфікації</h2> - -<table class="standard-table"> - <thead> - <tr> - <th scope="col">Специфікація</th> - </tr> - </thead> - <tbody> - <tr> - <td>{{SpecName('ESDraft', '#prod-LogicalANDExpression', 'Logical AND expression')}}</td> - </tr> - </tbody> -</table> - -<h2 id="Сумісність_з_веб-переглядачами">Сумісність з веб-переглядачами</h2> - - - -<p>{{Compat("javascript.operators.logical_and")}}</p> - -<h2 id="Див._також">Див. також</h2> - -<ul> - <li>{{jsxref("Boolean")}}</li> - <li>{{Glossary("Truthy")}}</li> - <li>{{Glossary("Falsy")}}</li> -</ul> |
