PROJET AUTOBLOG


le hollandais volant links

Site original : le hollandais volant links

⇐ retour index

javascript - Can (a ==1 && a== 2 && a==3) ever evaluate to true? - Stack Overflow

lundi 22 janvier 2018 à 11:58

:o

Effectivement, les espaces avant et après les variables sont étrangement posées. Si les espaces sont des espaces « exotiques » en unicode, ils font partie du nom de la variable et on a donc trois variables différentes :

a␣ = 1, ␣2 = 3, a = 3;
if (a␣ == 1 && a == 2 && a == 3) {
  console.log('Hello World!');
}

Mais même avec ça, il y a une solution relativement simpliste : suffit de redéclarer il suffit de savoir le fonctionnement même de JavaScript, qui essaye toujours de trouver l’égalité sur les types de variables, puis de redéfinir une méthode qui existe déjà :

const a = {
  i: 1,
  toString: function () {
    return a.i++;
  }
}

if (a == 1 && a == 2 && a == 3) {
  console.log('Hello World!');
}

— (permalink)