diff options
Diffstat (limited to 'files/ca/conflicting/web/javascript/reference/operators_af596841c6a3650ee514088f0e310901/index.html')
-rw-r--r-- | files/ca/conflicting/web/javascript/reference/operators_af596841c6a3650ee514088f0e310901/index.html | 304 |
1 files changed, 0 insertions, 304 deletions
diff --git a/files/ca/conflicting/web/javascript/reference/operators_af596841c6a3650ee514088f0e310901/index.html b/files/ca/conflicting/web/javascript/reference/operators_af596841c6a3650ee514088f0e310901/index.html deleted file mode 100644 index 3dc7af9899..0000000000 --- a/files/ca/conflicting/web/javascript/reference/operators_af596841c6a3650ee514088f0e310901/index.html +++ /dev/null @@ -1,304 +0,0 @@ ---- -title: Operadors Lògics -slug: >- - conflicting/Web/JavaScript/Reference/Operators_af596841c6a3650ee514088f0e310901 -translation_of: Web/JavaScript/Reference/Operators -translation_of_original: Web/JavaScript/Reference/Operators/Logical_Operators -original_slug: Web/JavaScript/Referencia/Operadors/Logical_Operators ---- -<div> -<div>{{jsSidebar("Operators")}}</div> -</div> - -<h2 id="Summary" name="Summary">Resum</h2> - -<p>Els operadors lògics s'utilitzen normalment amb valors <code><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean">Boolean</a></code> (lògics). En cas de serh-hi presents, retornen un valor booleà. Tot i així, els operadors <code>&&</code> i <code>||</code> retornen el valor d'un dels operands especificats, així que si aquests operadors es fan servir amb valors no booleans, poden retornar un valor no booleà.</p> - -<h2 id="Descripció">Descripció</h2> - -<p>Els operadors lògics es descriuren en la taula següent:</p> - -<table class="fullwidth-table"> - <tbody> - <tr> - <th>Operador</th> - <th>Ús</th> - <th>Descripció</th> - </tr> - <tr> - <td>AND lògic (<code>&&</code>)</td> - <td><code><em>expr1</em> && <em>expr2</em></code></td> - <td>Retorna <code>expr1 </code>si es pot convertir en false; sinó, retorna expr2. Així, quan es fa servir amb valors booleans, <code>&&</code> retorna true si ambdós operands són true; de ser el contrari, retorna false.</td> - </tr> - <tr> - <td>OR lògic(<code>||</code>)</td> - <td><code><em>expr1</em> || <em>expr2</em></code></td> - <td>Retorna <code>expr1</code> si es pot converir en true; de ser al contrari, retorna <code>expr2</code>. Així, quan s'usa amb valors Booleans, <code>||</code> retorna true si l'operand és true; si amdós són false, retorna false.</td> - </tr> - <tr> - <td>NOT lògic (<code>!</code>)</td> - <td><code>!<em>expr</em></code></td> - <td>Retorna false si el seu únic operand pot convertir-se a true; sinó, retorna true.</td> - </tr> - </tbody> -</table> - -<p>Exemples d'expressions que es poden converir a false son aquelles que avaluen <code>null</code>, <code>0</code>, la cadena buida (""), o <code>undefined</code>.</p> - -<p>Tot i que els operadors <code>&&</code> i <code>||</code> es poden fer servir amb operands que no siguin valors Booleans, poden ser considerats operadors Booleans ja que els valors que retornen sempre es poden convertir en valors Booleans.</p> - -<h3 id="Short-Circuit_Evaluation" name="Short-Circuit_Evaluation">Avaluació de tipus curtcircuit</h3> - -<p>Com a expressions lògiques que són, s'avaluen d'esquerra a dreta, they are tested for possible "short-circuit" evaluation fent servir les regles següents:</p> - -<ul> - <li><code>false && (<em>quelcom)</em></code> is short-circuit evaluated to false.</li> - <li><code>true || (<em>quelcom)</em></code> is short-circuit evaluated to true.</li> -</ul> - -<p>Les regles de la lògica garanteixen que aquestes avaluacions són sempre correctes. Fixeu-vos que la part <code><em>quelcom</em></code> d'adalt no s'avalua, així que els efectes secundaris d'això no tindràn efecte. Fixeu-vos també que la part de l'expressió de dalt anomenada <code><em>quelcom </em></code>és una expressió lògica simple (com s'indiquen amb els parèntesis).</p> - -<p>Per exemple, les dues funcions següents són equivalents.</p> - -<pre class="brush: js">function shortCircuitEvaluation() { - doSomething() || doSomethingElse() -} - -function equivalentEvaluation() { - var flag = doSomething(); - if (!flag) { - doSomethingElse(); - } -} -</pre> - -<p>Tot i així, les següents expressions no són equivalents degut a la <a href="/en-US/docs/Web/JavaScript/Reference/Operators/Operator_Precedence">precendència dels operadors</a>, i remarca la importància de requerir que l'operador de la dreta sigui una sola expressió (agrupada, si s'escau, per parèntesi).</p> - -<pre class="brush: js">false && true || true // returns true -false && (true || true) // returns false</pre> - -<h3 id="Logical_AND_.28&&.29" name="Logical_AND_.28&&.29"><a name="Logical_AND">AND lògic (<code>&&</code>)</a></h3> - -<p>El codi següent mostra exemples de l'operador <code>&&</code> (AND lògic).</p> - -<pre class="brush: js">a1 = true && true // t && t returns true -a2 = true && false // t && f returns false -a3 = false && true // f && t returns false -a4 = false && (3 == 4) // f && f returns false -a5 = "Cat" && "Dog" // t && t returns "Dog" -a6 = false && "Cat" // f && t returns false -a7 = "Cat" && false // t && f returns false -</pre> - -<h3 id="OR_lògic_()"><a name="Logical_OR">OR lògic (<code>||</code>)</a></h3> - -<p>El codi següent mostra exemples de l'operador <code>||</code> (OR lògic).</p> - -<pre class="brush: js">o1 = true || true // t || t returns true -o2 = false || true // f || t returns true -o3 = true || false // t || f returns true -o4 = false || (3 == 4) // f || f returns false -o5 = "Cat" || "Dog" // t || t returns "Cat" -o6 = false || "Cat" // f || t returns "Cat" -o7 = "Cat" || false // t || f returns "Cat" -</pre> - -<h3 id="Logical_NOT_.28.21.29" name="Logical_NOT_.28.21.29"><a name="Logical_NOT">NOT lògic (<code>!</code>)</a></h3> - -<p>El codi següent mostra exemples de l'operador <code>!</code> (NOT lògic).</p> - -<pre class="brush: js">n1 = !true // !t returns false -n2 = !false // !f returns true -n3 = !"Cat" // !t returns false -</pre> - -<h3 id="Regles_de_conversió">Regles de conversió</h3> - -<h4 id="Convertir_AND_a_OR">Convertir AND a OR</h4> - -<p>L'operació següent que inclou Booleans:</p> - -<pre class="brush: js">bCondition1 && bCondition2</pre> - -<p>sempre és igual a:</p> - -<pre class="brush: js">!(!bCondition1 || !bCondition2)</pre> - -<h4 id="Convertir_OR_a_AND">Convertir OR a AND</h4> - -<p>L'operació següent que inclou Booleans:</p> - -<pre class="brush: js">bCondition1 || bCondition2</pre> - -<p>sempre és igual a:</p> - -<pre class="brush: js">!(!bCondition1 && !bCondition2)</pre> - -<h3 id="Desfer-se_de_parèntesis_aniuats">Desfer-se de parèntesis aniuats</h3> - -<p>Com que les expressions lògiques s'avaluen d'esquerra a dreta, sempre és posible esborrar els parèntesi d'expressions complexes mitjançant les regles següents.</p> - -<h4 id="Desfer-se_d'un_AND_aniuat">Desfer-se d'un AND aniuat</h4> - -<p>L'operació següent que inclou Booleans:</p> - -<pre class="brush: js">bCondition1 || (bCondition2 && bCondition3)</pre> - -<p>sempre és igual a:</p> - -<pre class="brush: js">bCondition1 || bCondition2 && bCondition3</pre> - -<h4 id="Desfer-se_d'un_OR_aniuat">Desfer-se d'un OR aniuat</h4> - -<p>L'operació següent que inclou Booleans:</p> - -<pre class="brush: js">bCondition1 && (bCondition2 || bCondition3)</pre> - -<p>sempre és igual a:</p> - -<pre class="brush: js">!(!bCondition1 || !bCondition2 && !bCondition3)</pre> - -<h2 id="Especificacions">Especificacions</h2> - -<table class="standard-table"> - <tbody> - <tr> - <th scope="col">Especificació</th> - <th scope="col">Estat</th> - <th scope="col">Comentari</th> - </tr> - <tr> - <td>1a edició de ECMAScript.</td> - <td>Estàndard</td> - <td>Definició inicial.</td> - </tr> - <tr> - <td>{{SpecName('ES5.1', '#sec-11.4.9', 'Logical NOT Operator')}}<br> - {{SpecName('ES5.1', '#sec-11.11', 'Binary Logical Operators')}}</td> - <td>{{Spec2('ES5.1')}}</td> - <td> </td> - </tr> - <tr> - <td>{{SpecName('ES6', '#sec-logical-not-operator', 'Logical NOT operator')}}<br> - {{SpecName('ES6', '#sec-binary-logical-operators', 'Binary Logical Operators')}}</td> - <td>{{Spec2('ES6')}}</td> - <td> </td> - </tr> - </tbody> -</table> - -<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> - -<p>{{ CompatibilityTable() }}</p> - -<div id="compat-desktop"> -<table class="compat-table"> - <tbody> - <tr> - <th>Característica</th> - <th>Chrome</th> - <th>Firefox (Gecko)</th> - <th>Internet Explorer</th> - <th>Opera</th> - <th>Safari</th> - </tr> - <tr> - <td><a href="#Logical_AND">AND lògic (<code>&&</code>)</a></td> - <td>{{ CompatVersionUnknown() }}</td> - <td>{{ CompatVersionUnknown() }}</td> - <td>{{ CompatVersionUnknown() }}</td> - <td>{{ CompatVersionUnknown() }}</td> - <td>{{ CompatVersionUnknown() }}</td> - </tr> - <tr> - <td><a href="#Logical_OR">OR </a><a href="#Logical_AND">lògic </a><a href="#Logical_OR">(<code>||</code>)</a></td> - <td>{{ CompatVersionUnknown() }}</td> - <td>{{ CompatVersionUnknown() }}</td> - <td>{{ CompatVersionUnknown() }}</td> - <td>{{ CompatVersionUnknown() }}</td> - <td>{{ CompatVersionUnknown() }}</td> - </tr> - <tr> - <td><a href="#Logical_NOT">NOT </a><a href="#Logical_AND">lògic</a><a href="#Logical_NOT"> (<code>!</code>)</a></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>Característica</th> - <th>Android</th> - <th>Chrome per Android</th> - <th>Firefox Mobile (Gecko)</th> - <th>IE Mobile</th> - <th>Opera Mobile</th> - <th>Safari Mobile</th> - </tr> - <tr> - <td><a href="#Logical_AND">AND </a><a href="#Logical_AND">lògic</a><a href="#Logical_AND"> (<code>&&</code>)</a></td> - <td>{{ CompatVersionUnknown() }}</td> - <td>{{ CompatVersionUnknown() }}</td> - <td>{{ CompatVersionUnknown() }}</td> - <td>{{ CompatVersionUnknown() }}</td> - <td>{{ CompatVersionUnknown() }}</td> - <td>{{ CompatVersionUnknown() }}</td> - </tr> - <tr> - <td><a href="#Logical_OR">OR </a><a href="#Logical_AND">lògic </a><a href="#Logical_OR">(<code>||</code>)</a></td> - <td>{{ CompatVersionUnknown() }}</td> - <td>{{ CompatVersionUnknown() }}</td> - <td>{{ CompatVersionUnknown() }}</td> - <td>{{ CompatVersionUnknown() }}</td> - <td>{{ CompatVersionUnknown() }}</td> - <td>{{ CompatVersionUnknown() }}</td> - </tr> - <tr> - <td><a href="#Logical_NOT">NOT </a><a href="#Logical_AND">lògic</a><a href="#Logical_NOT"> (<code>!</code>)</a></td> - <td>{{ CompatVersionUnknown() }}</td> - <td>{{ CompatVersionUnknown() }}</td> - <td>{{ CompatVersionUnknown() }}</td> - <td>{{ CompatVersionUnknown() }}</td> - <td>{{ CompatVersionUnknown() }}</td> - <td>{{ CompatVersionUnknown() }}</td> - </tr> - </tbody> -</table> -</div> - -<h3 id="JavaScript_1.0_and_1.1" name="JavaScript_1.0_and_1.1">Compatibilitat amb versions anteriors: Comportament a JavaScript 1.0 i 1.1</h3> - -<p>Els operadors && i <code>||</code> es comporten de la forma següent:</p> - -<table class="fullwidth-table"> - <tbody> - <tr> - <th>Operador</th> - <th>Ús</th> - <th>Comportament</th> - </tr> - <tr> - <td><code>&&</code></td> - <td><code><em>expr1</em> && <em>expr2</em></code></td> - <td>Si el primer operand (<code>expr1</code>) es pot converitr a false, l'operador <code>&&</code> retorna false en comptes del valor de <code>expr1</code>.</td> - </tr> - <tr> - <td><code>||</code></td> - <td><code><em>expr1</em> || <em>expr2</em></code></td> - <td>Si el primer operand (<code>expr1</code>) es pot converitr a true, l'operador <code>||</code> retorna true en comptes del valor de <code>expr1</code>.</td> - </tr> - </tbody> -</table> - -<h2 id="See_also" name="See_also">Vegeu també</h2> - -<ul> - <li><a href="/en-US/docs/Web/JavaScript/Reference/Operators/Bitwise_Operators">Bitwise operators</a></li> -</ul> |