javascript tome xi - OPÉRATEURS D’ÉGALITÉ
Transcription
javascript tome xi - OPÉRATEURS D’ÉGALITÉ
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). J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome-VI Mais le nombre 1 en base décimal est naturellement égal à 1 binaire (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 groupe de 4 bits est appelé QUARTET ou NYBBLE. Un groupe de 8 bits est appelé BYTE ou OCTET. Un groupe de 16 bits est appelé WORD ou MOT. Un groupe de 32 bits est appelé DOUBLE-WORD = D-WORD. Un groupe de 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 niVariables & Functions - 2 / 41 - jeudi, 4. avril 2019 (10:45 ) J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome-VI veau du bit sans converson. typeof true; typeof false; true; => => "boolean" "boolean" => false; => eval(true) eval(false) parseInt(true) parseInt(false) true*1 false*1; true false => => true false => => NaN NaN => => 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 BnP = new Boolean(); // Aucun paramètre var BZ = new Boolean(0); // 0 en paramètre var BN = new Boolean(null); // null en paramètre Variables & Functions - 3 / 41 - jeudi, 4. avril 2019 (10:45 ) J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome-VI var BEmptyS = new Boolean(''); // Chaîne vide var 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 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"); Variables & Functions - 4 / 41 - jeudi, 4. avril 2019 (10:45 ) J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome-VI 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 ». Voyez donc : <script type="text/javascript"> "use strict"; // Ceci donnera true car objet // var x = new Boolean(expression); let x = new Boolean(false); Variables & Functions - 5 / 41 - jeudi, 4. avril 2019 (10:45 ) J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome-VI 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 test.html:7:9 y == false 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); Variables & Functions // initialisé à true - 6 / 41 - jeudi, 4. avril 2019 (10:45 ) 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"); } Variables & Functions - 7 / 41 - jeudi, 4. avril 2019 (10:45 ) J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome-VI else { console.log("new Boolean(false) affecte false"); } </script> Exécution : Boolean {[[PrimitiveValue]]: true} test.html:7 new Boolean('false') s'évalue à true test.html:9 Boolean {[[PrimitiveValue]]: false} test.html:18 new Boolean(false) s'évalue à true 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'); } Variables & Functions - 8 / 41 - jeudi, 4. avril 2019 (10:45 ) J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome-VI // Valeur « false » affectée la à l'objet Boolean y // TOUT OBJEt non undefined ou nul s'évalue à true. let y = false; // Valeur s'évalue à sa juste valeur console.log(y); if (y) { console.log("« y = false » affecte true"); } else { console.log("« y = false » affecte false"); } </script> Exécution : False test.html:7:3 « x = "false" » affecte true test.html:9:6 False test.html:18:3 « y = false » affecte false test.html:23:6 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; Variables & Functions - 9 / 41 - jeudi, 4. avril 2019 (10:45 ) J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome-VI var m=-1; var d=2; var t="texte" ///////////// cv -> {} cnv -> {a: 2, b: 7} s -> "" x -> undefined n -> null z -> 0 u -> 1 m -> -1 d -> 2 t -> "texte" typeof cv -> "object" typeof cnv -> "object" typeof s -> "string" typeof x -> "undefined" typeof n -> "object" typeof z -> "number" typeof u -> "number" typeof m -> "number" typeof d -> "number" typeof t -> "string" Variables & Functions - 10 / 41 - jeudi, 4. avril 2019 (10:45 ) 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") Variables & Functions - 11 / 41 - jeudi, 4. avril 2019 (10:45 ) J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome-VI 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") 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 ") Variables & Functions - 12 / 41 - jeudi, 4. avril 2019 (10:45 ) J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome-VI 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") if(!cnv==true) console.log("!cnv == true") if(!n==true) console.log("!n == true") !n == true Variables & Functions - 13 / 41 - jeudi, 4. avril 2019 (10:45 ) J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome-VI 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)") Variables & Functions - 14 / 41 - jeudi, 4. avril 2019 (10:45 ) J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome-VI !(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") if((!t)!=true) console.log("!t != true") !t != true Variables & Functions - 15 / 41 - jeudi, 4. avril 2019 (10:45 ) J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome-VI 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") 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)") 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 ") Variables & Functions - 16 / 41 - jeudi, 4. avril 2019 (10:45 ) J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome-VI 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 Variables & Functions - 17 / 41 - jeudi, 4. avril 2019 (10:45 ) J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome-VI 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") !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") if((!x)==false) console.log("!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)) console.log("!(n==false)") !(n==false) Variables & Functions - 18 / 41 - jeudi, 4. avril 2019 (10:45 ) J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome-VI 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 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 Variables & Functions - 19 / 41 - jeudi, 4. avril 2019 (10:45 ) J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome-VI 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 ") Variables & Functions - 20 / 41 - jeudi, 4. avril 2019 (10:45 ) 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 Variables & Functions - 21 / 41 - jeudi, 4. avril 2019 (10:45 ) J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome-VI 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) Variables & Functions - 22 / 41 - jeudi, 4. avril 2019 (10:45 ) J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome-VI 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") if((!t)!==true) console.log("!t !== true") !t !== true if(!cv!==true) console.log("!cv !== true") Variables & Functions - 23 / 41 - jeudi, 4. avril 2019 (10:45 ) J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome-VI !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") 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)") 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 ") Variables & Functions - 24 / 41 - jeudi, 4. avril 2019 (10:45 ) J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome-VI 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") 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) console.log("!n === false") Variables & Functions - 25 / 41 - jeudi, 4. avril 2019 (10:45 ) J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome-VI if(!x===false) console.log("!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) 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") !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) Variables & Functions - 26 / 41 - jeudi, 4. avril 2019 (10:45 ) J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome-VI 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 Variables & Functions - 27 / 41 - jeudi, 4. avril 2019 (10:45 ) J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome-VI 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)") 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") Variables & Functions - 28 / 41 - jeudi, 4. avril 2019 (10:45 ) J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome-VI 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) 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 Variables & Functions - 29 / 41 - jeudi, 4. avril 2019 (10:45 ) J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome-VI 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") !d === false Variables & Functions - 30 / 41 - jeudi, 4. avril 2019 (10:45 ) J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome-VI 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") Variables & Functions - 31 / 41 - jeudi, 4. avril 2019 (10:45 ) J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome-VI 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 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 Variables & Functions - 32 / 41 - jeudi, 4. avril 2019 (10:45 ) J.D.B. DIASOLUKA Nz. Luyalu true==1 -> true true==2 -> false true!=-0 -> true true!=0 true -> true!=-1 -> true true!=1 -> false true!=2 -> true false==-0 -> true false==0 -> true false==-1 -> false false==1 -> false false==2 -> false false!=-0 -> false false!=0 -> false false!=-1 -> true false!=1 -> true false!=2 -> true JavaScript Tome-VI --// Sans typecasting true===-0 -> false true===0 -> false Variables & Functions - 33 / 41 - jeudi, 4. avril 2019 (10:45 ) J.D.B. DIASOLUKA Nz. Luyalu true===-1 -> false true===1 -> false true===2 -> false true!==-0 -> true true!==0 -> true true!==-1 -> true true!==1 -> true true!==2 -> true false===0 -> false false===0 -> false false===1 -> false false===1 -> false false===2 -> false JavaScript Tome-VI false!==-0 -> true false!==0 -> true false!==-1 -> true false!==1 -> true false!==2 -> true --// Avec typecasting 0=="0" => true Variables & Functions - 34 / 41 - jeudi, 4. avril 2019 (10:45 ) J.D.B. DIASOLUKA Nz. Luyalu !0=="!0" => false !0==!"0" => false -0=="-0" => true !-0=="!-0" => false !-0==!"-0" => false -!0=="-!0" => false -!0==-"!0" => false 1=="1" => true !1=="!1" => false !1==!"1" => true -1=="-1" => true !-1=="!-1" => false !-1==!"-1" => true -!1=="-!1" => false -!1==-"!1" => false 2=="2" => true !2=="!2" => false !2==!"2" => true -2=="-2" => true !-2=="!-2" => false !-2==!"-2" => true -!2=="-!2" => false -!2==-"!2" => false Variables & Functions - 35 / 41 - JavaScript Tome-VI jeudi, 4. avril 2019 (10:45 ) J.D.B. DIASOLUKA Nz. Luyalu 0!="0" => false !0!="!0" => true !0!=!"0" => true -0!="-0" => false !-0!="!-0" => true !-0!=!"-0" => true -!0!="-!0" => true -!0!=-"!0" => true 1!="1" => false !1!="!1" => true !1!=!"1" => false -1!="-1" => false !-1!="!-1" => true !-1!=!"-1" => false -!1!="-!1" => true -!1!=-"!1" => true 2!="2" => false !2!="!2" => true !2!=!"2" => false -2!="-2" => false !-2!="!-2" => true !-2!=!"-2" => false -!2!="-!2" => true -!2!=-"!2" => true Variables & Functions - 36 / 41 - JavaScript Tome-VI jeudi, 4. avril 2019 (10:45 ) J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome-VI --// « strict equality operator » // Sans typecasting 0==="0" => false !0==="!0" => false !0===!"0" => false -0==="-0" => false !-0==="!-0" => false !-0===!"-0" => false -!0==="-!0" => false -!0===-"!0" => false 1==="1" => false !1==="!1" => false !1===!"1" => true -1==="-1" => false !-1==="!-1" => false !-1===!"-1" => true -!1==="-!1" => false -!1===-"!1" => false 2==="2" => false !2==="!2" => false Variables & Functions - 37 / 41 - jeudi, 4. avril 2019 (10:45 ) J.D.B. DIASOLUKA Nz. Luyalu !2===!"2" => true -2==="-2" => false !-2==="!-2" => false !-2===!"-2" => true -!2==="-!2" => false -!2===-"!2" => false JavaScript Tome-VI --0!=="0" => true !0!=="!0" => true !0!==!"0" => true -0!=="-0" => true !-0!=="!-0" => true !-0!==!"-0" => true -!0!=="-!0" => true -!0!==-"!0" => true 1!=="1" => true !1!=="!1" => true !1!==!"1" => false -1!=="-1" => true !-1!=="!-1" => true !-1!==!"-1" => false -!1!=="-!1" => true -!1!==-"!1" => true Variables & Functions - 38 / 41 - jeudi, 4. avril 2019 (10:45 ) J.D.B. DIASOLUKA Nz. Luyalu 2!=="2" => true !2!=="!2" => true !2!==!"2" => false -2!=="-2" => true !-2!=="!-2" => true !-2!==!"-2" => false -!2!=="-!2" => true -!2!==-"!2" => 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. <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); Variables & Functions - 39 / 41 - jeudi, 4. avril 2019 (10:45 ) J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome-VI 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 ========== false false false false Variables & Functions - 40 / 41 - jeudi, 4. avril 2019 (10:45 ) J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome-VI false false Variables & Functions - 41 / 41 - jeudi, 4. avril 2019 (10:45 )