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

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

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

 

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

نوشته میشه (a==1 && a==2 && a==3) که true بشه آیا؟ اولین بار در ویرگول پدیدار شد.

گردآوری توسط ایده طلایی

دیدگاهتان را بنویسید