میشه (a==1 && a==2 && a==3) که true بشه آیا؟

اولین بار که این سوال رو دیدم خیلی برام تعجب برانگیز بود.مگه میشه که یک متغیر همزمان هم 1 باشه هم 2 هم3؟مگه میشه ؟ مگه داریم؟ از اونجایی که آدم باهوشی نیستم فوری راه حل رو نگاه کردم. راه حل ساده است.کافیه متدهای toString یا valueOf رو بازنویسی کنیم به این صورت.

const a = {
  i: 1,
  toString: function () { 
    return a.i++;
  }
}
if(a == 1 && a == 2 && a == 3) {
  console.log('Hello World!');
}

به همین سادگی. میتونید امتحان کنید.