Comparaison de révisions

Expressions et opérateurs

Révision 482539 :

Révision 482539 par SphinxKnight le

Révision 485185 :

Révision 485185 par SphinxKnight le

Titre :
Expressions et opérateurs
Expressions et opérateurs
Identifiant d'URL :
JavaScript/Guide/Expressions_et_Opérateurs
JavaScript/Guide/Expressions_et_Opérateurs
Contenu :

Révision 482539
Révision 485185
n37    <h2 id="Operators">n37    <h2 id="Op.C3.A9rateurs">
n83    <h3 id="Assignment_operators">n83    <h3 id="Op.C3.A9rateurs_d'assignations">
n197    <h3 id="Comparison_operators">n197    <h3 id="Op.C3.A9rateurs_de_comparaison">
n323    <h3 id="Arithmetic_operators">n323    <h3 id="Op.C3.A9rateurs_arithm.C3.A9tiques">
n404    <h3 id="Bitwise_operators">n404    <h3 id="Op.C3.A9rateurs_binaires">
n511      Bitwise logical operatorsn511      Opérateurs binaires logiques
n514      Conceptually, the bitwise logical operators work as followsn514      Les opérateurs binaires logiques fonctionnent de cette faço
>:>n :
n517      <li>The operands are converted to thirty-two-bit integers an517      <li>Les opérandes sont convertis en entiers sur 32 bits et 
>nd expressed by a series of bits (zeros and ones).>exprimés comme une série de bits (des 1 et des 0).
n519      <li>Each bit in the first operand is paired with the corresn519      <li>Chaque bit du premier opérande est associé avec le bit 
>ponding bit in the second operand: first bit to first bit, second>correspondant du second opérande (le premier bit du premier opéra
> bit to second bit, and so on.>nde avec le premier bit du second opérande, le second avec le sec
 >ond ...)
n521      <li>The operator is applied to each pair of bits, and the rn521      <li>L'opérateur est appliqué pour chaque paire de bits ains
>esult is constructed bitwise.>i constituée et le résultat est reconstruit sous forme binaire.
n525      For example, the binary representation of nine is 1001, andn525      Le chiffre neuf est par exemple représenté comme 1001, et l
> the binary representation of fifteen is 1111. So, when the bitwi>e nombre quinze comme 1111. Ainsi, quand les opérateurs binaires 
>se operators are applied to these values, the results are as foll>sont appliqués sur ces valeurs, on a les résultats qui suivent :
>ows: 
n529        Table 3.5 Bitwise operator examplesn529        Tableau 3.5 Exemples utilisant les opérateurs binaires
n537            Resultn537            Résultat
n540            Binary Descriptionn540            Description binaire
n603      Note that all 32 bits are inverted using the Bitwise NOT opn603      Il faut remarquer que tous les bits sont échangés lorsque l
>erator, and that values with the most significant (left-most) bit>'opérateur binaire NOT est utilisé. Il est donc utile de savoir q
> set to 1 represent negative numbers (two's-complement representa>ue les valeurs dont le bit le plus fort (le plus à gauche) vaut 1
>tion).> sont des nombres négatifs (représentation en complément à deux).
n606      Bitwise shift operatorsn606      Opérateurs binaires de décalage
n609      The bitwise shift operators take two operands: the first isn609      Les opérateurs binaires de décalage utilisent deux opérande
> a quantity to be shifted, and the second specifies the number of>s : le premier indiquant la quantité à décaler et le second indiq
> bit positions by which the first operand is to be shifted. The d>uant de combien de bits on décale le premier opérande. La directi
>irection of the shift operation is controlled by the operator use>on du décalage est spécifiée grâce à l'opérateur.
>d. 
610    </p>
611    <p>610    </p>
612      Shift operators convert their operands to thirty-two-bit in
>tegers and return a result of the same type as the left operand. 
613    </p>611    <p>
612      Les opérateurs binaires de décalage convertissent leurs opé
 >randes en entiers sur 32 bits et renvoient un résultat dont le ty
 >pe est le même que l'opérande gauche.
614    <p>613    </p>
615      The shift operators are listed in the following table.614    <p>
615      Les opérateurs de décalage sont énumérés dans le tableau qu
 >i suit.
n619        Table 3.6 Bitwise shift operatorsn619        Tableau 3.6 Opérateurs binaires de décalage
n624            Operatorn624            Opérateur
n630            Examplen630            Exemple
n638            (Left shift)n638            (Décalage à gauche)
639          </td>
640          <td>639          </td>
641            This operator shifts the first operand the specified 
>number of bits to the left. Excess bits shifted off to the left a 
>re discarded. Zero bits are shifted in from the right. 
642          </td>640          <td>
641            Cet opérateur décale le premier opérande d'un certain
 > nombre de bits sur la gauche. Les bits en trop sont ignorés et d
 >es bits à zéro sont introduits à droite.
643          <td>642          </td>
644            <code>9&lt;&lt;2</code> yields 36, because 1001 shift643          <td>
>ed 2 bits to the left becomes 100100, which is 36. 
644            <code>9&lt;&lt;2</code> renvoie 36, car 1001, décalé 
 >de 2 bits à gauche, devient&nbsp; 100100, dont la représentation 
 >en base 10 est&nbsp; 36.
n650            (Sign-propagating right shift)n650            (Décalage à droite avec propagation du signe)
651          </td>
652          <td>651          </td>
653            This operator shifts the first operand the specified 
>number of bits to the right. Excess bits shifted off to the right 
> are discarded. Copies of the leftmost bit are shifted in from th 
>e left. 
654          </td>652          <td>
653            Cet opérateur décale le premier opérande d'un certain
 > nombre de bits sur la droite. Les bits en trop sont ignorés et d
 >es bits correspondant au bit de signe sont introduits à gauche.
655          <td>654          </td>
656            <code>9&gt;&gt;2</code> yields 2, because 1001 shifte655          <td>
>d 2 bits to the right becomes 10, which is 2. Likewise, <code>-9& 
>gt;&gt;2</code> yields -3, because the sign is preserved. 
656            <code>9&gt;&gt;2</code> renvoie 2, car 1001, décalé d
 >e 2 bits à droite, devient 10 représentant 2. De même&nbsp; <code
 >>-9&gt;&gt;2</code> renvoie -3, car le signe est préservé.
n662            (Zero-fill right shift)n662            (Décalage à droite avec zéros)
663          </td>
664          <td>663          </td>
665            This operator shifts the first operand the specified 
>number of bits to the right. Excess bits shifted off to the right 
> are discarded. Zero bits are shifted in from the left. 
666          </td>664          <td>
665            Cet opérateur décale le premier opérande d'un certain
 > nombre de bits sur la droite.&nbsp; Les bits en trop sont ignoré
 >s et des bits à 0 sont introduits à gauche.
667          <td>666          </td>
668            <code>19&gt;&gt;&gt;2</code> yields 4, because 10011 667          <td>
>shifted 2 bits to the right becomes 100, which is 4. For non-nega 
>tive numbers, zero-fill right shift and sign-propagating right sh 
>ift yield the same result. 
668            <code>19&gt;&gt;&gt;2</code> renvoie 4, car 10011, dé
 >calé de 2 bits, devient 100 qui représente 4. Pour les nombres po
 >sitifs, cet opérateur et l'opérateur précédent renvoient les même
 >s résultats.
n674      Logical operatorsn674      Opérateurs logiques
n677      Logical operators are typically used with Boolean (logical)n677      Les opérateurs logiques sont généralement utilisés avec des
> values; when they are, they return a Boolean value. However, the> valeurs booléennes. Dans ce cas, il renvoient une valeur booléen
> &amp;&amp; and || operators actually return the value of one of >ne. Les opérateurs &amp;&amp; et || renvoient en fait une valeurs
>the specified operands, so if these operators are used with non-B> d'un des opérandes et si ces opérateurs sont utilisés avec des v
>oolean values, they may return a non-Boolean value. The logical o>aleurs non-booléennées, ils pourront renvoyés une valeur non-bool
>perators are described in the following table.>éenne. Les opérateurs logiques sont décrits dans le tableau qui s
 >uit.
n681        Table 3.6 Logical operatorsn681        Tableau 3.6 Opérateurs logiques
n686            Operatorn686            Opérateur
n705            (Logical AND) Returns <code>expr1</code> if it can ben705            (ET logique) renvoie <code>expr1</code> s'il peut êtr
> converted to false; otherwise, returns <code>expr2</code>. Thus,>e converti à false, sinon renvoie <code>expr2</code>. Dans le cas
> when used with Boolean values, <code>&amp;&amp;</code> returns t> où on utilise des opérandes booléens, <code>&amp;&amp;</code> re
>rue if both operands are true; otherwise, returns false.>nvoie true si les deux opérandes valent true, false sinon.
n716            (Logical OR) Returns <code>expr1</code> if it can be n716            (OU logique) renvoie <code>expr1</code> s'il peut êtr
>converted to true; otherwise, returns <code>expr2</code>. Thus, w>e converti à true, sinon renvoie <code>expr2</code>. Dans le cas 
>hen used with Boolean values, <code>||</code> returns true if eit>où on utilise des opérandes booléens, <code>||</code> renvoie tru
>her operand is true; if both are false, returns false.>e si l'un des opérandes vaut true, si les deux valent false, il r
 >envoie false.
n727            (Logical NOT) Returns false if its single operand cann727            (NON logique) renvoie false si son seul opérande peut
> be converted to true; otherwise, returns true.> être converti en true, sinon il renvoie true.
n733      Examples of expressions that can be converted to false are n733      Les exemples d'expressions qui peuvent être converties à fa
>those that evaluate to null, 0, NaN, the empty string (""), or un>lse sont celles qui sont évaluer à null, 0, NaN, la chaîne de car
>defined.>actères vide (""), ou undefined.
734    </p>
735    <p>734    </p>
736      The following code shows examples of the &amp;&amp; (logica
>l AND) operator. 
737    </p>735    <p>
738    <pre class="brush: js">736      Le code qui suit montre des exemples de l'utilisation de l'
 >opérateur logique ET (&amp;&amp;).
739var a1 =  true &amp;&amp; true;     // t &amp;&amp; t returns tru
>e 
740var a2 =  true &amp;&amp; false;    // t &amp;&amp; f returns fal
>se 
741var a3 = false &amp;&amp; true;     // f &amp;&amp; t returns fal
>se 
742var a4 = false &amp;&amp; (3 == 4); // f &amp;&amp; f returns fal
>se 
743var a5 = "Cat" &amp;&amp; "Dog";    // t &amp;&amp; t returns Dog
744var a6 = false &amp;&amp; "Cat";    // f &amp;&amp; t returns fal
>se 
745var a7 = "Cat" &amp;&amp; false;    // t &amp;&amp; f returns fal
>se 
746</pre>
747    <p>737    </p>
748      The following code shows examples of the || (logical OR) op738    <pre class="brush: js">
>erator. 
739var a1 =  true &amp;&amp; true;      // t &amp;&amp; t renvoie tr
 >ue
740var a2 =  true &amp;&amp; false;     // t &amp;&amp; f renvoie fa
 >lse
741var a3 = false &amp;&amp; true;      // f &amp;&amp; t renvoie fa
 >lse
742var a4 = false &amp;&amp; (3 == 4);  // f &amp;&amp; f renvoie fa
 >lse
743var a5 = "Chat" &amp;&amp; "Chien";  // t &amp;&amp; t renvoie Ch
 >ien
744var a6 = false &amp;&amp; "Chat";    // f &amp;&amp; t renvoie fa
 >lse
745var a7 = "Chat" &amp;&amp; false;    // t &amp;&amp; f renvoie fa
 >lse
746</pre>
749    </p>747    <p>
750    <pre class="brush: js">748      Les exemples suivants montrent l'utilisation de l'opérateur
 > logique OU (||).
751var o1 =  true || true;     // t || t returns true
752var o2 = false || true;     // f || t returns true
753var o3 =  true || false;    // t || f returns true
754var o4 = false || (3 == 4); // f || f returns false
755var o5 = "Cat" || "Dog";    // t || t returns Cat
756var o6 = false || "Cat";    // f || t returns Cat
757var o7 = "Cat" || false;    // t || f returns Cat
758</pre>
759    <p>749    </p>
760      The following code shows examples of the ! (logical NOT) op750    <pre class="brush: js">
>erator. 
751var o1 =  true || true;      // t || t renvoie true
752var o2 = false || true;      // f || t renvoie true
753var o3 =  true || false;     // t || f renvoie true
754var o4 = false || (3 == 4);  // f || f renvoie false
755var o5 = "Chat" || "Chien";  // t || t renvoie Chat
756var o6 = false || "Chat";    // f || t renvoie Chat
757var o7 = "Chat" || false;    // t || f renvoie Chat
758</pre>
761    </p>759    <p>
760      Les exemples suivants montrent l'utilisation de l'opérateur
 > logique NON (!).
761    </p>
n763var n1 = !true;  // !t returns falsen763var n1 = !true;   // !t renvoie false
764var n2 = !false; // !f returns true764var n2 = !false;  // !f renvoie true
765var n3 = !"Cat"; // !t returns false765var n3 = !"Chat"; // !t renvoie false
n768      Short-circuit evaluationn768      Evaluation rapide
n771      As logical expressions are evaluated left to right, they arn771      Les expressions logiques sont évaluées de gauche à droite. 
>e tested for possible "short-circuit" evaluation using the follow>Cette évaluation utilise des tests pour savoir s'il est possible 
>ing rules:>d'utiliser des « raccourcis » correspondant aux règles suivantes 
 >:
n775        <code>false</code> &amp;&amp; <em>anything</em> is short-n775        <code>false</code> &amp;&amp; <em>n'importe quoi</em> ser
>circuit evaluated to false.>a évalué à false.
n778        <code>true</code> || <em>anything</em> is short-circuit en778        <code>true</code> || <em>n'importe quoi</em> sera évalué 
>valuated to true.>à true.
n782      The rules of logic guarantee that these evaluations are alwn782      Les règles logiques garantissent la validité de ces évaluat
>ays correct. Note that the <em>anything</em> part of the above ex>ions, il faut noter que le second opérande n'est pas du tout éval
>pressions is not evaluated, so any side effects of doing so do no>ué, empêchant ainsi des conséquences cachées de cette évaluation.
>t take effect. 
t785      String operatorst785      Les opérateurs de chaînes de caractères

Retour à l'historique