TGViewer
Tech Stuff Tech Stuff @techstuff100 · 1.21K subscribers
Post #346 484
خروجی کد بالا (1) چیه؟

شاید اینطور فکر کنیم که وقتی به return "try" می‌رسیم، اجرای تابع متوقف میشه و خروجی کد "try" میشه؛ اما "finally" چاپ میشه. برای درک بهتر این موضوع لازمه با Completion Record آشنا بشیم.

ا Completion Record به آبجکتی گفته میشه که نتیجه اجرای یه دستور یا عبارت رو مشخص می‌کنه. js با اجرای هر statement یه Completion Record ایجاد می‌کنه و ۳ تا فیلد داره:

یک. type برای نوع نتیجه که یکی از مقادیر normal (اجرای عادی)، break، continue، return و throw می‌تونه باشه.
دو. value برای مقدار تولید شده.
سه. target که مقصد رو برای break و continue مشخص می‌کنه.

توی مثال وقتی return "try" اجرا میشه، یه Completion Record با مشخصات (2) ایجاد میشه. اما قبل از اینکه تابع واقعا return کنه، بلاک finally اجرا میشه. داخل finally هم یه return داریم که Completion Record (3) رو تولید می‌کنه و نتیجه قبلی جایگزین میشه. پس در نهایت مقدار "finally" برگردونده میشه.

اگه finally به‌صورت normal تموم میشد و Completion جدیدی مثل return یا throw تولید نمی‌کرد، نتیجه قبلی حفظ میشد.

#javascript

@techstuff100
  • ❤ 5
  • 🔥 2
  • 👏 2
  • 👍 1
More from @techstuff100
  1. Oct 9, 2026فاصله Levenshtein حداقل تعداد عملیات‌های ممکن (insertion، deletion و substitution) برای تب…
  2. Oct 2, 2026قانون پارکینسون میگه کار اونقدر کش پیدا می‌کنه تا زمانی که برای تکمیلش داریم رو پر کنه. پر…
  3. Oct 1, 2026با بزرگ شدن LF باید slotهای بیشتری به hash tableمون اضافه کنیم که بهش میگن resizing. منطقی…
  4. Oct 1, 2026پرفورمنس hash table پرفورمنس hash tableها بطور متوسط (average case) پیچیدگی زمانی O(1) دار…
  5. Sep 29, 2026چطور ریموت کار کنیم ریموت کار کردن فقط این نیست که لپ‌تاپمون رو برداریم و از خونه کار کنیم…
  6. Sep 25, 2026چطور به عنوان یه مهندس قابل‌اطمینان، اعتبار بسازیم؟ برای اینکه از دید مدیر یا سهام‌دارمون…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →