O P É R AT E U R S D ’ É G A L I T É J AVA S C R I P T (Programmation Internet) V O L . V I J.B. Dadet DIASOLUKA Luyalu Nzoyifuanga +243 - 851278216 - 899508675 - 991239212 - 902263541 - 813572818 CHAPITRE 10 : OPÉRATEURS D’ÉGALITÉ : Faites attention à ceci : * Avec l’opérateur « = = » JS fait le typecasting selon le contexte. * Avec l’opérateur « = = = » JS ne fait pas de typecasting. Si vous avez « true » avec « = = » et « true » avee « = = = » c’est que ce true est vraiment true (même sans transtypage). Si vous avez « true » avec « = = » et « false » avee « = = = » c’est que ce true n’est en fait que truthy (forcé par transtypage) truthy est un true par assimilation. Si vous avez « false » avec « = = » et « false » avee « = = = » c’est que ce false est vraiment false (même sans transtypage). Si vous avez « false » avec « = = » et « true » avee « = = = » c’est que ce false n’est en fait que falsey (forcé par transtypage). falsey est un false par assimilation. Dans les opérations logiques : if(0) est évalué comme false (faux), mais pour tout autre nombre n; if(n) est évalué comme true (vrai). Mais le nombre 1 en base décimal est naturellement égal à 1 binaire J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome-VI (boolean) du point de vue mathématique (quantité), mais pas identique (pas représenté de la même façon) que true (boolean = binaire). true est donc égal à 1 (binaire = à un seul bit). De même., 0 égale à false, et false (boolean = à un seul bit) est assimilable à 0 décimal pour les mêmes raisons que ci-dessus. false en base binaire égale 0 avec un seul bit ; true en base binaire égale 1 avec un seul bit :; 0 en base décimale = 0000 0000 en binaire 8 bits (byte) ; 1 en base décimale = 0000 0001 en binaire 8 bits (byte) ; Rappel : Un Un Un Un Un groupe groupe groupe groupe groupe de de de de de 4 bits est appelé QUARTET ou NYBBLE. 8 bits est appelé BYTE ou OCTET. 16 bits est appelé WORD ou MOT. 32 bits est appelé DOUBLE-WORD = D-WORD. 64 bits est appelé QUAD-WORD ou Q-WORD. La taille de stockage dans les ordinateurs actuels est de 64 bits (quadruple-word), dans laquelle : false (binaire) = 0 avec 1 seul bit (économie de 63 bits) ; true (binaire) = 1 avec 1 seul bit (économie de 63 bits) ; 0 décimal = 00000000 00000000 00000000 00000000 binaire. 1 décimal = 00000000 00000000 00000000 00000001 binaire. . L’opérateur d’égalité « = = » fait une comparaison logique (après des conversions implicites de type = typecasting nécessaires ou coercion de types), tandis que l’opérateur d’égalité strict « = = = » travaille au niveau du bit sans converson. typeof true; typeof false; => => "boolean" "boolean" true; => true Opérateurs d’égalités - 2 / 33 - vendredi, 31. mai 2019 (9:08 ) J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome-VI false; => false eval(true) eval(false) => => true false parseInt(true) parseInt(false) => => NaN NaN true*1 false*1; => => 1 0 Les valeurs suivantes se résolvent en falsey (assimilées à faux) : 0, -0, null, NaN, undefined, chaîne vide (""). false est vrai false,. Leurs opposés « !val » se résolvent en « truthy (assimilées au vrai)». L’opposé de false, reste un vrai true, Les objets créés avec les valeurs de ce type en paramètres ont une valeur initiale de false : var var var var var BnP = new Boolean(); // Aucun paramètre BZ = new Boolean(0); // 0 en paramètre BN = new Boolean(null); // null en paramètre BEmptyS = new Boolean(''); // Chaîne vide BF = new Boolean(false); // false explicite. Tout autre valeur y compris tout objet ou même la chaîne "false" crée un objet ayant « true » comme valeur initiale. Les objets créés avec des arguments se résolvant en true ont une valeur initiale de true : var BT = new Boolean(true); // true explicite. var BTS = new Boolean('true'); // Chaîne non vide var BFS = new Boolean('false'); // Chaîne non vide Opérateurs d’égalités - 3 / 33 - vendredi, 31. mai 2019 (9:08 ) J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome-VI var BOS = new Boolean('txt'); // Chaîne non vide var BA = new Boolean([]); // Array var BO = new Boolean({}); // Object Ne confondez surtout pas les valeurs primitives bouléennes « true » et « false » avec les valeurs « true » et « false » d’un objet Boolean.: un objet booléen soit-il n’est jamais false (un objet est toujours true) même quand il porte une valeur false ou qu’il est vide. <script type="text/javascript"> "use strict"; let v = true; let vv = v.valueOf(); if (v === vv) console.log("same"); // same else console.log("different"); let v1 = Boolean(true); let vv1 = v1.valueOf(); if (v === vv) console.log("same"); // same else console.log("different"); if (v === v1) console.log("same"); // same else console.log("different"); if (vv === vv1) console.log("same"); // same else console.log("different"); let v2 = new Boolean(true); let vv2 = v2.valueOf(); if (v2 === vv2) console.log("same"); else console.log("different"); // different if (v === v2) console.log("same"); else console.log("different"); // different if (vv === v2) console.log("same"); else console.log("different"); // different if (v1 === v2) console.log("same"); else console.log("different"); // different if (vv1 === v2) console.log("same"); else console.log("different"); // different </script> Tout objet dont la valeur n’est pas « undefined » ou « null », (y compris un objet Boolean dont la valeur est false) s’évalue en « true » dans une expression conditionnelle, car comme tout autre objet l’objet Boolean s’évalue en « true ». Opérateurs d’égalités - 4 / 33 - vendredi, 31. mai 2019 (9:08 ) J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome-VI Voyez donc : <script type="text/javascript"> "use strict"; // Ceci donnera true car objet // var x = new Boolean(expression); let x = new Boolean(false); if(x)console.log(x == true); else console.log(x == false) // La foncton de casting Boolean // convertit à sa juste valeur // var x = Boolean(expression); let y = Boolean(false); if(y)console.log(y == true); else console.log(y == false) Let z = {}; if(z)console.log(«x == true»); else console.log(«x == false») </script> Exécution : x == true y == false test.html:7:9 test.html:15:9 Tout objet, soit-il un objet Boolean ayant la valeur false, transmet toujours la valeur true : N’utilisez donc pas un objet Boolean à la place d’une boolean-primitive // Valeur booléenne false let F = new Boolean(false); // initialisé à false // objet ayant la valeur false let T1 = new Boolean(F); // initialisé à true Opérateurs d’égalités - 5 / 33 - vendredi, 31. mai 2019 (9:08 ) J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome-VI // Chaîne de caractères ds objet String() let S = new String('txt'); // init. à objet String let T2 = new Boolean(S); // init. à true Ci-dessous, « chaîne false » et valeur « false » affectées à un objet Boolean (un objet s’évalue à true) : <script type="text/javascript"> "use strict"; // Chaîne "false" affectée la à l'objet Boolean x // Ue chaîne est traitée comme true. var x = new Boolean("false"); console.log(x); if (x) { console.log("new Boolean('false') affecte true"); } else { console.log("new Boolean('false') affecte false"); } // Valeur « false » affectée la à l'objet Boolean y // TOUT OBJEt non undefined ou nul affecte true. var y = new Boolean(false); console.log(y); if (y) { console.log("new Boolean(false) affecte true"); } else { console.log("new Boolean(false) affecte false"); } </script> Exécution : Boolean {[[PrimitiveValue]]: true} new Boolean('false') s'évalue à true Boolean {[[PrimitiveValue]]: false} Opérateurs d’égalités - 6 / 33 - test.html:7 test.html:9 test.html:18 vendredi, 31. mai 2019 (9:08 ) J.D.B. DIASOLUKA Nz. Luyalu new Boolean(false) s'évalue à true JavaScript Tome-VI test.html:20 Ci-dessous, « chaîne false » et valeur « false » affectées à une primitive Boolean (une variable simple s›évalue à sa juste valeur) : <script type="text/javascript"> "use strict"; // Chaîne "false" affectée la à l'objet Boolean x // Ue chaîne est traitée comme true. let x = "false"; // Chaîne : affecte true. console.log(x); if (x) { console.log('« x = "false" » affecte true'); } else { console.log('« x = "false" » affecte false'); } // Valeur « false // TOUT OBJEt non let y = false; // console.log(y); if (y) { console.log("« } else { console.log("« } </script> » affectée la à l'objet Boolean y undefined ou nul s'évalue à true. Valeur s'évalue à sa juste valeur y = false » affecte true"); y = false » affecte false"); Exécution : False « x = "false" » affecte true False « y = false » affecte false Opérateurs d’égalités - 7 / 33 - test.html:7:3 test.html:9:6 test.html:18:3 test.html:23:6 vendredi, 31. mai 2019 (9:08 ) J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome-VI Ci-dessous, une table des égalités (table des vérités) : ///////////// var cv={}; var cnv={a:2,b:7}; var s=""; var x; var n=null; var z=0; var u=1; var m=-1; var d=2; var t="texte" ///////////// cv cnv s x n z u m d t -> -> -> -> -> -> -> -> -> -> typeof typeof typeof typeof typeof typeof typeof typeof typeof typeof {} {a: 2, b: 7} "" undefined null 0 1 -1 2 "texte" cv cnv s x n z u m d t -> -> -> -> -> -> -> -> -> -> "object" "object" "string" "undefined" "object" "number" "number" "number" "number" "string" Opérateurs d’égalités - 8 / 33 - vendredi, 31. mai 2019 (9:08 ) J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome-VI if(cv) console.log("cv est truthy") cv est truthy if(!cv) console.log("cv est falsey") if(cnv) console.log("cnv est truthy") cnv est truthy if(!cnv) console.log("cnv est falsey") if(s) console.log("s est truthy") if(!s) console.log("s est falsey") s est falsey if(x) console.log("x est truthy") if(!x) console.log("x est falsey") x est falsey if(n) console.log("n est truthy") if(!n) console.log("n est falsey") n est falsey if(z) console.log("z est truthy") if(!z) console.log("z est falsey") z est falsey if(u) console.log("u est truthy") u est truthy if(!u) console.log("u est falsey") if(m) console.log("m est truthy") m est truthy if(!m) console.log("m est falsey") if(d) console.log("d est truthy") d est truthy if(!d) console.log("d est falsey") if(t) console.log("t est truthy") Opérateurs d’égalités - 9 / 33 - vendredi, 31. mai 2019 (9:08 ) J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome-VI t est truthy if(!t) console.log("t est falsey") --// POUR undefined, string ("" et "txt") et null // OPÉRATEUR D’ÉGALITÉ (= =) // TRANSTYPAGE ÉVENTUELLEMENT if(cv==true) console.log("cv==true ") if(cnv==true) console.log("cnv==true ") if(n==true) console.log("n==true ") if(x==true) console.log("x==true ") if(s==true) console.log("s==true ") if(t==true) console.log("t==true ") if(cv!=true) console.log("cv != true") cv != true if(cnv!=true) console.log("cnv != true") cnv != true if(n!=true) console.log("n != true") n != true if(x!=true) console.log("x != true") x != true if(s!=true) console.log("s != true") s != true if(t!=true) console.log("t != true") t != true if(!cv==true) console.log("!cv == true") Opérateurs d’égalités - 10 / 33 - vendredi, 31. mai 2019 (9:08 ) J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome-VI if(!cnv==true) console.log("!cnv == true") if(!n==true) console.log("!n == true") !n == true if(!x==true) console.log("!x == true") !x == true if(!s==true) console.log("!s == true") !s == true if(!t==true) console.log("!t == true") if((!cv)==true) console.log("!cv == true") if((!cnv)==true) console.log("!cnv == true") if((!n)==true) console.log("!n == true") !n == true if((!x)==true) console.log("!x == true") !x == true if((!s)==true) console.log("!s == true") !s == true if((!t)==true) console.log("!t == true") if(!(cv==true)) console.log("!(cv==true)") !(cv==true) if(!(cnv==true)) console.log("!(cnv==true)") !(cnv==true) if(!(n==true)) console.log("!(n==true)") !(n==true) if(!(x==true)) console.log("!(x==true)") !(x==true) Opérateurs d’égalités - 11 / 33 - vendredi, 31. mai 2019 (9:08 ) J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome-VI if(!(s==true)) console.log("!(s==true)") !(s==true) if(!(t==true)) console.log("!(t==true)") !(t==true) if((!cv)!=true) console.log("!cv != true") !cv != true if((!cnv)!=true) console.log("!cnv != true") !cnv != true if((!n)!=true) if((!x)!=true) if((!s)!=true) if((!t)!=true) !t != true console.log("!n console.log("!x console.log("!s console.log("!t != != != != true") true") true") true") if(!cv!=true) console.log("!cv != true") !cv != true if(!cnv!=true) console.log("!cnv != true") !cnv != true if(!n!=true) if(!x!=true) if(!s!=true) if(!t!=true) !t != true console.log("!n console.log("!x console.log("!s console.log("!t != != != != true") true") true") true") if(!(cv!=true)) console.log("!(cv!=true)") if(!(cnv!=true)) console.log("!(cnv!=true)") if(!(n!=true)) console.log("!(n!=true)") if(!(x!=true)) console.log("!(x!=true)") if(!(s!=true)) console.log("!(s!=true)") if(!(t!=true)) console.log("!(t!=true)") Opérateurs d’égalités - 12 / 33 - vendredi, 31. mai 2019 (9:08 ) J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome-VI --if(cv==false) console.log("cv==false ") if(cnv==false) console.log("cnv==false ") if(n==false) console.log("n==false ") if(x==false) console.log("x==false ") if(s==false) console.log("s==false ") s==false if(t==false) console.log("t==false ") if(cv!=false) console.log("cv != false") cv != false if(cnv!=false) console.log("cnv != false") cnv != false if(n!=false) console.log("n != false") n != false if(x!=false) console.log("x != false") x != false if(s!=false) console.log("s != false") if(t!=false) console.log("t != false") t != false if(!cv==false) console.log("!cv == false") !cv == false if(!cnv==false) console.log("!cnv == false") !cnv == false if(!n==false) if(!x==false) if(!s==false) if(!t==false) console.log("!n console.log("!x console.log("!s console.log("!t Opérateurs d’égalités - 13 / 33 - == == == == false") false") false") false") vendredi, 31. mai 2019 (9:08 ) J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome-VI !t == false if((!cv)==false) console.log("!cv == false") !cv == false if((!cnv)==false) console.log("!cnv == false") !cnv == false if((!n)==false) if((!x)==false) if((!s)==false) if((!t)==false) !t == false console.log("!n console.log("!x console.log("!s console.log("!t == == == == false") false") false") false") if(!(cv==false)) console.log("!(cv==false)") !(cv==false) if(!(cnv==false)) console.log("!(cnv==false)") !(cnv==false) if(!(n==false)) console.log("!(n==false)") !(n==false) if(!(x==false)) console.log("!(x==false)") !(x==false) if(!(s==false)) console.log("!(s==false)") if(!(t==false)) console.log("!(t==false)") !(t==false) if((!cv)!=false) console.log("!cv != false") if((!cnv)!=false) console.log("!cnv != false") if((!n)!=false) console.log("!n != false") !n != false if((!x)!=false) console.log("!x != false") !x != false Opérateurs d’égalités - 14 / 33 - vendredi, 31. mai 2019 (9:08 ) J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome-VI if((!s)!=false) console.log("!s != false") !s != false if((!t)!=false) console.log("!t != false") if(!cv!=false) console.log("!cv != false") if(!cnv!=false) console.log("!cnv != false") if(!n!=false) console.log("!n != false") !n != false if(!x!=false) console.log("!x != false") !x != false if(!s!=false) console.log("!s != false") !s != false if(!t!=false) console.log("!t != false") if(!(cv!=false)) console.log("!(cv!=false)") if(!(cnv!=false)) console.log("!(cnv!=false)") if(!(n!=false)) console.log("!(n!=false)") if(!(x!=false)) console.log("!(x!=false)") if(!(s!=false)) console.log("!(s!=false)") !(s!=false) if(!(t!=false)) console.log("!(t!=false)") --// OPÉRATEUR D’ÉGALITÉ STRICTE (= = =) // SANS TRANSTYPAGE if(cv===true) console.log("cv===true ") if(cnv===true) console.log("cnv===true ") if(n===true) console.log("n===true ") if(x===true) console.log("x===true ") Opérateurs d’égalités - 15 / 33 - vendredi, 31. mai 2019 (9:08 ) J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome-VI if(s===true) console.log("s===true ") if(t===true) console.log("t===true ") if(cv!==true) console.log("cv !== true") cv !== true if(cnv!==true) console.log("cnv !== true") cnv !== true if(n!==true) console.log("n !== true") n !== true if(x!==true) console.log("x !== true") x !== true if(s!==true) console.log("s !== true") s !== true if(t!==true) console.log("t !== true") t !== true if(!cv===true) console.log("!cv === true") if(!cnv===true) console.log("!cnv === true") if(!n===true) console.log("!n === true") !n === true if(!x===true) console.log("!x === true") !x === true if(!s===true) console.log("!s === true") !s === true if(!t===true) console.log("!t === true") if((!cv)===true) console.log("!cv === true") if((!cnv)===true) console.log("!cnv === true") if((!n)===true) console.log("!n === true") Opérateurs d’égalités - 16 / 33 - vendredi, 31. mai 2019 (9:08 ) J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome-VI !n === true if((!x)===true) console.log("!x === true") !x === true if((!s)===true) console.log("!s === true") !s === true if((!t)===true) console.log("!t === true") if(!(cv===true)) console.log("!(cv===true)") !(cv===true) if(!(cnv===true)) console.log("!(cnv===true)") !(cnv===true) if(!(n===true)) console.log("!(n===true)") !(n===true) if(!(x===true)) console.log("!(x===true)") !(x===true) if(!(s===true)) console.log("!(s===true)") !(s===true) if(!(t===true)) console.log("!(t===true)") !(t===true) if((!cv)!==true) console.log("!cv !== true") !cv !== true if((!cnv)!==true) console.log("!cnv !== true") !cnv !== true if((!n)!==true) console.log("!n !== true") if((!x)!==true) console.log("!x !== true") if((!s)!==true) console.log("!s !== true") Opérateurs d’égalités - 17 / 33 - vendredi, 31. mai 2019 (9:08 ) J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome-VI if((!t)!==true) console.log("!t !== true") !t !== true if(!cv!==true) console.log("!cv !== true") !cv !== true if(!cnv!==true) console.log("!cnv !== true") !cnv !== true if(!n!==true) if(!x!==true) if(!s!==true) if(!t!==true) !t !== true console.log("!n console.log("!x console.log("!s console.log("!t !== !== !== !== true") true") true") true") if(!(cv!==true)) console.log("!(cv!==true)") if(!(cnv!==true)) console.log("!(cnv!==true)") if(!(n!==true)) console.log("!(n!==true)") if(!(x!==true)) console.log("!(x!==true)") if(!(s!==true)) console.log("!(s!==true)") if(!(t!==true)) console.log("!(t!==true)") --if(cv===false) console.log("cv===false ") if(cnv===false) console.log("cnv===false ") if(n===false) console.log("n===false ") if(x===false) console.log("x===false ") if(s===false) console.log("s===false ") if(t===false) console.log("t===false ") if(cv!==false) console.log("cv !== false") cv !== false if(cnv!==false) console.log("cnv !== false") cnv !== false Opérateurs d’égalités - 18 / 33 - vendredi, 31. mai 2019 (9:08 ) J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome-VI if(n!==false) console.log("n !== false") n !== false if(x!==false) console.log("x !== false") x !== false if(s!==false) console.log("s !== false") s !== false if(t!==false) console.log("t !== false") t !== false if(!cv===false) console.log("!cv === false") !cv === false if(!cnv===false) console.log("!cnv === false") !cnv === false if(!n===false) if(!x===false) if(!s===false) if(!t===false) !t === false console.log("!n console.log("!x console.log("!s console.log("!t === === === === false") false") false") false") if((!cv)===false) console.log("!cv === false") !cv === false if((!cnv)===false) console.log("!cnv === false") !cnv === false if((!n)===false) if((!x)===false) if((!s)===false) if((!t)===false) !t === false console.log("!n console.log("!x console.log("!s console.log("!t === === === === false") false") false") false") if(!(cv===false)) console.log("!(cv===false)") Opérateurs d’égalités - 19 / 33 - vendredi, 31. mai 2019 (9:08 ) J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome-VI !(cv===false) if(!(cnv===false)) console.log("!(cnv===false)") !(cnv===false) if(!(n===false)) console.log("!(n===false)") !(n===false) if(!(x===false)) console.log("!(x===false)") !(x===false) if(!(s===false)) console.log("!(s===false)") !(s===false) if(!(t===false)) console.log("!(t===false)") !(t===false) if((!cv)!==false) console.log("!cv !== false") if((!cnv)!==false) console.log("!cnv !== false") if((!n)!==false) console.log("!n !== false") !n !== false if((!x)!==false) console.log("!x !== false") !x !== false if((!s)!==false) console.log("!s !== false") !s !== false if((!t)!==false) console.log("!t !== false") if(!cv!==false) console.log("!cv !== false") if(!cnv!==false) console.log("!cnv !== false") if(!n!==false) console.log("!n !== false") !n !== false if(!x!==false) console.log("!x !== false") !x !== false Opérateurs d’égalités - 20 / 33 - vendredi, 31. mai 2019 (9:08 ) J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome-VI if(!s!==false) console.log("!s !== false") !s !== false if(!t!==false) console.log("!t !== false") if(!(cv!==false)) console.log("!(cv!==false)") if(!(cnv!==false)) console.log("!(cnv!==false)") if(!(n!==false)) console.log("!(n!==false)") if(!(x!==false)) console.log("!(x!==false)") if(!(s!==false)) console.log("!(s!==false)") if(!(t!==false)) console.log("!(t!==false)") --if(z===true) console.log("z===true ") if(u===true) console.log("u===true ") if(d===true) console.log("d===true ") if(z!==true) console.log("z !== true") z !== true if(u!==true) console.log("u !== true") u !== true if(d!==true) console.log("d !== true") d !== true if(!z===true) console.log("!z === true") !z === true if(!u===true) console.log("!u === true") if(!d===true) console.log("!d === true") if(!(z===true)) console.log("!(z===true)") !(z===true) Opérateurs d’égalités - 21 / 33 - vendredi, 31. mai 2019 (9:08 ) J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome-VI if(!(u===true)) console.log("!(u===true)") !(u===true) if(!(d===true)) console.log("!(d===true)") !(d===true) if(!z!==true) console.log("!z !== true") if(!u!==true) console.log("!u !== true") !u !== true if(!d!==true) console.log("!d !== true") !d !== true if(!(z!==true)) console.log("!(z!==true)") if(!(u!==true)) console.log("!(u!==true)") if(!(d!==true)) console.log("!(d!==true)") --if(z===false) console.log("z===false ") if(u===false) console.log("u===false ") if(d===false) console.log("d===false ") if(z!==false) console.log("z !== false") z !== false if(u!==false) console.log("u !== false") u !== false if(d!==false) console.log("d !== false") d !== false if(!z===false) console.log("!z === false") if(!u===false) console.log("!u === false") !u === false if(!d===false) console.log("!d === false") Opérateurs d’égalités - 22 / 33 - vendredi, 31. mai 2019 (9:08 ) J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome-VI !d === false if(!(z===false)) console.log("!(z===false)") !(z===false) if(!(u===false)) console.log("!(u===false)") !(u===false) if(!(d===false)) console.log("!(d===false)") !(d===false) if(!z!==false) console.log("!z !== false") !z !== false if(!u!==false) console.log("!u !== false") if(!d!==false) console.log("!d !== false") if(!(z!==false)) console.log("!(z!==false)") if(!(u!==false)) console.log("!(u!==false)") if(!(d!==false)) console.log("!(d!==false)") --// AVEC TYPECASTING (TRANSTYPAGE) if(-0)console.log("-0 est falsey") if(0)console.log("0 est falsey") if(-1)console.log("-1 est truthy") -1 est truthy if(1)console.log("1 est truthy") c est truthy if(2)console.log("2 est truthy") c est truthy Opérateurs d’égalités - 23 / 33 - vendredi, 31. mai 2019 (9:08 ) J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome-VI if(!(-0))console.log("!(-0) est truthy") !(-0) est truthy if(!0)console.log("0 est truthy") c est truthy if(!(-1))console.log("!(-1) est falsey") if(!1)console.log("1 est falsey") if(!2)console.log("2 est falsey") // AVEC TYPECASTING true==-0 -> false true==0 -> false true==-1 -> false true==1 -> true true==2 -> false true!=-0 true!=0 true!=-1 true!=1 true!=2 -> -> -> -> -> true true true false true false==-0 false==0 false==-1 false==1 false==2 -> -> -> -> -> true true false false false false!=-0 false!=0 false!=-1 false!=1 false!=2 -> -> -> -> -> false false true true true Opérateurs d’égalités - 24 / 33 - vendredi, 31. mai 2019 (9:08 ) J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome-VI --// Sans typecasting true===-0 -> false true===0 -> false true===-1 -> false true===1 -> false true===2 -> false true!==-0 true!==0 true!==-1 true!==1 true!==2 -> -> -> -> -> true true true true true false===0 false===0 false===1 false===1 false===2 -> -> -> -> -> false false false false false false!==-0 false!==0 false!==-1 false!==1 false!==2 -> -> -> -> -> true true true true true --// Avec typecasting 0=="0" => true !0=="!0" => false !0==!"0" => false -0=="-0" => true !-0=="!-0" => false !-0==!"-0" => false -!0=="-!0" => false Opérateurs d’égalités - 25 / 33 - vendredi, 31. mai 2019 (9:08 ) J.D.B. DIASOLUKA Nz. Luyalu -!0==-"!0" => false 1=="1" !1=="!1" !1==!"1" -1=="-1" !-1=="!-1" !-1==!"-1" -!1=="-!1" -!1==-"!1" => => => => => => => => true false true true false true false false 2=="2" !2=="!2" !2==!"2" -2=="-2" !-2=="!-2" !-2==!"-2" -!2=="-!2" -!2==-"!2" => => => => => => => => true false true true false true false false 0!="0" !0!="!0" !0!=!"0" -0!="-0" !-0!="!-0" !-0!=!"-0" -!0!="-!0" -!0!=-"!0" => => => => => => => => false true true false true true true true 1!="1" !1!="!1" !1!=!"1" -1!="-1" !-1!="!-1" !-1!=!"-1" -!1!="-!1" -!1!=-"!1" => => => => => => => => false true false false true false true true Opérateurs d’égalités - 26 / 33 - JavaScript Tome-VI vendredi, 31. mai 2019 (9:08 ) J.D.B. DIASOLUKA Nz. Luyalu 2!="2" !2!="!2" !2!=!"2" -2!="-2" !-2!="!-2" !-2!=!"-2" -!2!="-!2" -!2!=-"!2" => => => => => => => => JavaScript Tome-VI false true false false true false true true --// « strict equality operator » // Sans typecasting 0==="0" !0==="!0" !0===!"0" -0==="-0" !-0==="!-0" !-0===!"-0" -!0==="-!0" -!0===-"!0" => => => => => => => => false false false false false false false false 1==="1" !1==="!1" !1===!"1" -1==="-1" !-1==="!-1" !-1===!"-1" -!1==="-!1" -!1===-"!1" => => => => => => => => false false true false false true false false 2==="2" !2==="!2" !2===!"2" -2==="-2" => => => => false false true false Opérateurs d’égalités - 27 / 33 - vendredi, 31. mai 2019 (9:08 ) J.D.B. DIASOLUKA Nz. Luyalu !-2==="!-2" !-2===!"-2" -!2==="-!2" -!2===-"!2" => => => => false true false false 0!=="0" !0!=="!0" !0!==!"0" -0!=="-0" !-0!=="!-0" !-0!==!"-0" -!0!=="-!0" -!0!==-"!0" => => => => => => => => true true true true true true true true 1!=="1" !1!=="!1" !1!==!"1" -1!=="-1" !-1!=="!-1" !-1!==!"-1" -!1!=="-!1" -!1!==-"!1" => => => => => => => => true true false true true false true true 2!=="2" !2!=="!2" !2!==!"2" -2!=="-2" !-2!=="!-2" !-2!==!"-2" -!2!=="-!2" -!2!==-"!2" => => => => => => => => true true false true true false true true JavaScript Tome-VI --- Faites attention quand vous comparez des variables Arrays ou objets : ce sont des pointeurs c’est-à-dire qu’elles ne contiennent pas une valeur propre, mais pointent sur le contenu d’une adresse-mémoire. Opérateurs d’égalités - 28 / 33 - vendredi, 31. mai 2019 (9:08 ) J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome-VI <script type="text/javascript"> "use strict"; var s, arrays,arrayd,array; array =arrays=[2,9,2,3,2,2,7,2,2]; arrayd=arrays; console.log(array==arrays); console.log(array==arrays); console.log(array==arrayd); console.log(array===arrays); console.log(arrayd===arrays); console.log(array===arrayd); console.log("=========="); array =[2,9,2,3,2,2,7,2,2]; arrays=[2,9,2,3,2,2,7,2,2]; arrayd=[2,9,2,3,2,2,7,2,2]; console.log(array==arrays); console.log(array==arrays); console.log(array==arrayd); console.log(array===arrays); console.log(arrayd===arrays); console.log(array===arrayd); </script> Exécution : true true True true true true Opérateurs d’égalités - 29 / 33 - vendredi, 31. mai 2019 (9:08 ) J.D.B. DIASOLUKA Nz. Luyalu ========== false false false false false false JavaScript Tome-VI Kinshasa, le vendredi 31 mai 2019 (9:08:45 PM). Mots-clés : Logical operators, comparaison, typecasting, false, opérateurs, opérateurs d’égalités, falsey, truthy, opérateurs logiques, comparaison binaire, opérateur d’égalités, valeurs primitives booléennes, valeurs booléennes, transtypage, coercion de types, conversion, table des vérités, tables des égalités, opérateurs d’égalités, objet Boolean, binaires, chaîne false Opérateurs d’égalités - 30 / 33 - vendredi, 31. mai 2019 (9:08 ) J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome-VI DIASOLUKA Nz. Luyalu Docteur en Médecine, Chirurgie & Accouchements (1977), CNOM : 0866 - Spécialiste en ophtalmologie (1980) Études humanités : Scientifique - Mathématiques & Physique. Informaticien-amateur, Programmeur et WebMaster. Chercheur indépendant, autonome et autofinancé, bénévole, sans aucun conflit d’intérêt ou liens d'intérêts ou contrainte promotionnelle avec qui qu’il soit ou quelqu’organisme ou institution / organisation que ce soit, étatique, paraétatique ou privé, industriel ou commercial en relation avec le sujet présenté. +243 - 851278216 - 899508675 - 991239212 - 902263541 - 813572818 [email protected] Autre Lecture : https://www.scribd.com/document/374738470/Le-Plus-Grand-Secret-de-LaCreation D’autres publications pouvant aussi intéresser : • https://www.scribd.com/document/377036251/Le-DosageDes-Medicaments-en-Cac-Cas • https://www.scribd.com/document/377035454/Le-HasardDes-Thermometres-Non-contact-a-Infrarouge • https://www.scribd.com/document/376222482/PetiteIntroduction-Aux-Fonctions-JavaScript • https://www.scribd.com/document/376221919/La-Foi-enJesus-Christ-Pour-Quoi-Faire • https://www.scribd.com/document/375689778/LacuiteOpérateurs d’égalités - 31 / 33 - vendredi, 31. mai 2019 (9:08 ) J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome-VI visuelle-angulaire • https://www.scribd.com/document/375349851/La-variableThis • https://www.scribd.com/document/375024162/FonctionsImbriquees-en-JS • https://www.scribd.com/document/374789297/FormatInterne-Des-Objets-JavaScript • https://www.scribd.com/document/374788758/Iterations-enJavaScript • https://www.scribd.com/document/374738470/Le-PlusGrand-Secret-de-La-Creation • https://www.scribd.com/document/374597969/NouvelleFormule-d-IMC-indice-de-doduite-Selon-Dr-Diasoluka • https://www.scribd.com/document/373847209/PropertyDescriptors • https://www.scribd.com/document/373833282/l-ObjetGlobal-Window • https://www.scribd.com/document/372665249/JavascriptTome-II • https://www.scribd.com/document/355291488/motiliteoculaire-2 • https://www.scribd.com/document/355291239/motiliteoculaire-I • https://www.scribd.com/document/355290248/Script-dAnalyses-Des-Reflexes-Pupillomoteurs • https://www.scribd.com/document/321168468/Renseignements -Id-et-Anthropometriques • https://www.scribd.com/document/320856721/Emission-31Jul-2016 • https://www.scribd.com/document/318182982/ComplicationVisuelle-du-Traitement-de-La-Malaria • https://www.scribd.com/document/318180637/RapportEntre-Oxymetrie-Et-Type-Respiration • https://www.scribd.com/document/315746265/ClassificationDes-Medicaments Opérateurs d’égalités - 32 / 33 - vendredi, 31. mai 2019 (9:08 ) J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome-VI • https://www.scribd.com/document/315745909/IncongruencesHeresies-et-Heterodoxies-de-la-Notion-de-Laboratoire • https://www.scribd.com/document/315745725/RapportEntre-Oxymetrie-Et-Type-Respiration Opérateurs d’égalités - 33 / 33 - vendredi, 31. mai 2019 (9:08 )