aboutsummaryrefslogtreecommitdiff
path: root/files/ru/web/javascript/reference/operators/conditional_operator
diff options
context:
space:
mode:
authorFlorian Merz <me@fiji-flo.de>2021-02-11 14:51:05 +0100
committerFlorian Merz <me@fiji-flo.de>2021-02-11 14:51:05 +0100
commitc058fa0fb22dc40ef0225b21a97578cddd0aaffa (patch)
treedf20f8b4c724b61cb9c34cdb450a7ac77d690bd0 /files/ru/web/javascript/reference/operators/conditional_operator
parent8260a606c143e6b55a467edf017a56bdcd6cba7e (diff)
downloadtranslated-content-c058fa0fb22dc40ef0225b21a97578cddd0aaffa.tar.gz
translated-content-c058fa0fb22dc40ef0225b21a97578cddd0aaffa.tar.bz2
translated-content-c058fa0fb22dc40ef0225b21a97578cddd0aaffa.zip
unslug ru: move
Diffstat (limited to 'files/ru/web/javascript/reference/operators/conditional_operator')
-rw-r--r--files/ru/web/javascript/reference/operators/conditional_operator/index.html169
1 files changed, 169 insertions, 0 deletions
diff --git a/files/ru/web/javascript/reference/operators/conditional_operator/index.html b/files/ru/web/javascript/reference/operators/conditional_operator/index.html
new file mode 100644
index 0000000000..344d7f21d9
--- /dev/null
+++ b/files/ru/web/javascript/reference/operators/conditional_operator/index.html
@@ -0,0 +1,169 @@
+---
+title: Условный (тернарный) оператор
+slug: Web/JavaScript/Reference/Operators/Условный_оператор
+tags:
+ - JavaScript
+ - Оператор
+translation_of: Web/JavaScript/Reference/Operators/Conditional_Operator
+---
+<div>{{jsSidebar("Operators")}}</div>
+
+<p><strong>Условный (тернарный) оператор</strong> - единственный оператор в JavaScript, принимающий три операнда: условие, за которым следует знак вопроса (?), затем выражение, которое выполняется, если условие истинно, сопровождается двоеточием (:), и, наконец, выражение, которое выполняется, если условие ложно. Он часто используется в качестве укороченного варианта условного оператора <a href="/en-US/docs/Web/JavaScript/Reference/Statements/if...else"><code>if</code></a>.</p>
+
+<h2 id="Синтаксис">Синтаксис</h2>
+
+<pre class="syntaxbox notranslate"><em>условие</em> ? <em>выражение1</em> : <em>выражение2 </em></pre>
+
+<h3 id="Параметры">Параметры</h3>
+
+<dl>
+ <dt><code>условие</code></dt>
+ <dd>Выражение, принимающее значение <code>true</code> или <code>false</code>.</dd>
+</dl>
+
+<dl>
+ <dt><code>выражение1</code>, <code>выражение2</code></dt>
+ <dd>Выражения, значения которых могут принадлежать любому типу.</dd>
+</dl>
+
+<h2 id="Описание">Описание</h2>
+
+<p>Оператор возвращает значение <code>выражения1</code>, если <code>условие</code> верно, и значение <code>выражения2</code> в противном случае. Например, чтобы вывести сообщение, текст которого зависит от значения переменной <code>isMember</code>, можно использовать такое выражение:</p>
+
+<pre class="brush: js notranslate">"The fee is " + (isMember ? "$2.00" : "$10.00")
+</pre>
+
+<p>Также можно присваивать значения переменным на основе результатов работы тернарного оператора :</p>
+
+<pre class="brush: js notranslate">var elvisLives = Math.PI &gt; 4 ? "Да" : "Нет";</pre>
+
+<p>Возможны множественные тернарные операции (обратите внимание: условный оператор ассоциативен справа):</p>
+
+<pre class="brush: js notranslate">var firstCheck = false,
+ secondCheck = false,
+ access = firstCheck ? "Доступ запрещен" : secondCheck ? "Доступ запрещен" : "Доступ разрешен";
+
+console.log( access ); // выводит в консоль "Доступ разрешен"</pre>
+
+<p>Тернарные операции можно использовать и сами по себе - для выполнения различных операций:</p>
+
+<pre class="brush: js notranslate">var stop = false, age = 16;
+
+age &gt; 18 ? location.assign("continue.html") : stop = true;
+</pre>
+
+<p>Также возможно выполнять несколько операций на каждое сравнение, разделив их запятыми:</p>
+
+<pre class="brush: js notranslate">var stop = false, age = 23;
+
+age &gt; 18 ? (
+ alert("Хорошо, вы можете продолжить."),
+ location.assign("continue.html")
+) : (
+ stop = true,
+ alert("Простите, вы еще так юны!")
+);
+</pre>
+
+<p>При присвоении значения также возможно выполнение более одной операции. В этом случае переменной <strong>будет присвоено то значение, </strong><em><strong>которое стоит последним в списке значений, разделенных запятой</strong></em>.</p>
+
+<pre class="brush: js notranslate">var age = 16;
+
+var url = age &gt; 18 ? (
+ alert("Хорошо, вы можете продолжить."),
+ // alert вернет "undefined", но это будет проигнорировано, потому что
+ // не является последним в списке значений, разделенных запятой
+ "continue.html" // значение будет присвоено, если age &gt; 18
+) : (
+ alert("Вы слишком молоды!"),
+ alert("Простите :-("),
+ // ит.д. ит.д.
+ "stop.html" // значение будет присвоено, если !(age &gt; 18)
+);
+
+location.assign(url); // "stop.html"</pre>
+
+<h2 id="Спецификации">Спецификации</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Спецификация</th>
+ <th scope="col">Статус</th>
+ <th scope="col">Комментарий</th>
+ </tr>
+ <tr>
+ <td>{{SpecName('ES6', '#sec-conditional-operator', 'Условный Оператор')}}</td>
+ <td>{{Spec2('ES6')}}</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td>{{SpecName('ES5.1', '#sec-11.12', 'Условный оператор')}}</td>
+ <td>{{Spec2('ES5.1')}}</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td>{{SpecName('ES1', '#sec-11.12', 'Условный оператор')}}</td>
+ <td>{{Spec2('ES1')}}</td>
+ <td>Изначальное определение. Реализация в JavaScript 1.0.</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Поддержка_браузерами">Поддержка браузерами</h2>
+
+<p>{{CompatibilityTable}}</p>
+
+<div id="compat-desktop">
+<table class="compat-table">
+ <tbody>
+ <tr>
+ <th>Особенность</th>
+ <th>Chrome</th>
+ <th>Firefox (Gecko)</th>
+ <th>Internet Explorer</th>
+ <th>Opera</th>
+ <th>Safari</th>
+ </tr>
+ <tr>
+ <td>Базовая поддержка</td>
+ <td>{{CompatVersionUnknown}}</td>
+ <td>{{CompatVersionUnknown}}</td>
+ <td>{{CompatVersionUnknown}}</td>
+ <td>{{CompatVersionUnknown}}</td>
+ <td>{{CompatVersionUnknown}}</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<div id="compat-mobile">
+<table class="compat-table">
+ <tbody>
+ <tr>
+ <th>Особенность</th>
+ <th>Android</th>
+ <th>Chrome for Android</th>
+ <th>Firefox Mobile (Gecko)</th>
+ <th>IE Mobile</th>
+ <th>Opera Mobile</th>
+ <th>Safari Mobile</th>
+ </tr>
+ <tr>
+ <td>Базовая поддержка</td>
+ <td>{{CompatVersionUnknown}}</td>
+ <td>{{CompatVersionUnknown}}</td>
+ <td>{{CompatVersionUnknown}}</td>
+ <td>{{CompatVersionUnknown}}</td>
+ <td>{{CompatVersionUnknown}}</td>
+ <td>{{CompatVersionUnknown}}</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<h2 id="Смотрие_также">Смотрие также</h2>
+
+<ul>
+ <li><a href="/en-US/docs/Web/JavaScript/Reference/Statements/if...else">if statement</a></li>
+</ul>