aboutsummaryrefslogtreecommitdiff
path: root/files/es/web/javascript/reference/operators/conditional_operator/index.html
blob: fd99951e7adb35a12fc5321061bb9c8280ce2023 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
---
title: Operador condicional (ternario)
slug: Web/JavaScript/Reference/Operators/Conditional_Operator
tags:
  - JavaScript
  - Operador
translation_of: Web/JavaScript/Reference/Operators/Conditional_Operator
original_slug: Web/JavaScript/Referencia/Operadores/Conditional_Operator
---
<div>{{jsSidebar("Operators")}}</div>

<div>El<strong> operador condicional </strong>(<strong>ternario</strong>) es el único operador en JavaScript que tiene tres operandos. Este operador se usa con frecuencia como atajo para la instrucción <a href="https://developer.mozilla.org/es/docs/Web/JavaScript/Referencia/Sentencias/if...else">if</a>.</div>

<div> </div>

<h2 id="Sintaxis">Sintaxis</h2>

<pre class="syntaxbox"><em>condición </em>? <em>expr1</em> : <em>expr2</em> </pre>

<h3 id="Parámetros">Parámetros</h3>

<dl>
 <dt><code>condición</code></dt>
 <dd>Una expresión que se evalúa como true o false.</dd>
 <dt>
 <div class="syntaxbox"><code>expr1</code>, <code>expr2</code></div>
 </dt>
 <dd>Expresión con valores de algún tipo.</dd>
 <dt>
 <h2 id="Descripción">Descripción</h2>
 </dt>
</dl>

<p>Si la <code>condición</code> es <code>true</code>, el operador retorna el valor de la <code>expr1</code>; de lo contrario,  devuelve el valor de <code>expr2</code>. Por ejemplo, para mostrar un mensaje diferente en función del valor de la variable <em><code>isMember,</code></em> se puede usar esta declaración:</p>

<pre class="brush: js">"La Cuota es de:  " + (isMember ? "$2.00" : "$10.00")
</pre>

<p>También puedes asignar variables dependiendo del resultado de la condición ternaria:</p>

<pre class="brush: js">var elvisLives = Math.PI &gt; 4 ? "Sip" : "Nop";</pre>

<p>También es posible realizar evaluaciones ternarias múltiples (Nota: El operador condicional es asociativo):</p>

<pre class="brush: js">var firstCheck = false,
    secondCheck = false,
    access = firstCheck ? "Acceso Denegado" : secondCheck ? "Acceso Denegado" : "Acceso Permitido";

console.log( access ); // muestra "Acceso Permitido"</pre>

<p>También puede usar operaciones ternarias en espacio vacío con el propósito de realizar diferentes operaciones:</p>

<pre class="brush: js">var stop = false, age = 16;

age &gt; 18 ? location.assign("continue.html") : stop = true;
</pre>

<p>También puede realizar más de una operación por caso, separándolas con una coma:</p>

<pre class="brush: js">var stop = false, age = 23;

age &gt; 18 ? (
    alert("OK, puedes continuar."),
    location.assign("continue.html")
) : (
    stop = true,
    alert("Disculpa, eres menor de edad!")
);
</pre>

<p>También puede realizar más de una operación durante la asignación de un valor. En este caso, <strong><em>el último valor separado por una coma del paréntesis </em>será el valor asignado</strong>.</p>

<pre class="brush: js">var age = 16;

var url = age &gt; 18 ? (
    alert("OK, puedes continuar."),
    // alert devuelve "undefined", pero será ignorado porque
    // no es el último valor separado por comas del paréntesis
    "continue.html" // el valor a ser asignado si age &gt; 18
) : (
    alert("Eres menor de edad!"),
    alert("Disculpa :-("),
    // etc. etc.
    "stop.html" // el valor a ser asignado si !(age &gt; 18)
);

location.assign(url); // "stop.html"</pre>

<h2 id="Especificaciones">Especificaciones</h2>

<table class="standard-table">
 <tbody>
  <tr>
   <th scope="col">Especificación</th>
   <th scope="col">Estado</th>
   <th scope="col">Comentario</th>
  </tr>
  <tr>
   <td>{{SpecName('ES6', '#sec-conditional-operator', 'Conditional Operator')}}</td>
   <td>{{Spec2('ES6')}}</td>
   <td> </td>
  </tr>
  <tr>
   <td>{{SpecName('ES5.1', '#sec-11.12', 'The conditional operator')}}</td>
   <td>{{Spec2('ES5.1')}}</td>
   <td> </td>
  </tr>
  <tr>
   <td>{{SpecName('ES1', '#sec-11.12', 'The conditional operator')}}</td>
   <td>{{Spec2('ES1')}}</td>
   <td>Definición inicial implementada en JavaScript 1.0.</td>
  </tr>
 </tbody>
</table>

<h2 id="Compatibilidad_de_navegadores">Compatibilidad de navegadores</h2>

{{Compat("javascript.operators.conditional")}}

<h2 id="Véase_también">Véase también</h2>

<ul>
 <li><a href="/en-US/docs/Web/JavaScript/Reference/Statements/if...else">if statement</a></li>
</ul>