function myFunc() {
  let a = b = 5;
}

myFunc();
console.log(b) // 5

باید بدونیم که عملگر مساوی (=) از راست به چپ شروع به ارزیابی می‌کنه. پس خط دوم کد بالا در واقع یه چیزی مثل این میشه:

let a = (b = 5);

همونطور که می‌دونیم متغیرهایی که بدون var تعریف میشن، متغیر سراسری به حساب میان. پیشنهاد می‌کنم این مقاله درباره ساخت متغیرها توی جاوااسکریپت رو بخونین.

برای حل این مسئله می‌تونیم از راهکار زیر استفاده کنیم:

function myFunc() {
  let a, b;
  a = b = 0;
}

myFunc();

ابتدا متغیرها رو تعریف کردیم و بعد به اونها مقدار دادیم.

 

منبع: