هوئیستینگ در جاوااسکریپت
5 دی 1403
ارسال شده توسط سمیرا خانی
90 بازدید

هوئیستینگ در جاوااسکریپت یک رفتار است که در آن اعلامیههای متغیر و تابع به بالای محدوده (scope) خود منتقل میشوند یا “هوئیست” میشوند، قبل از اینکه کد اجرا شود، در مرحله کامپایل.
نکات کلیدی:
- هوئیستینگ متغیرها:
- متغیرهایی که با
var
اعلام شدهاند به بالای محدوده خود منتقل میشوند، اما فقط اعلامیههای آنها، نه مقداردهی اولیهشان. این بدان معناست که متغیر وجود خواهد داشت، اما مقدار آنundefined
خواهد بود تا زمانی که کد به خط مقداردهی برسد.
- متغیرهایی که با
console.log(x); // undefined
var x = 5;
- هوئیستینگ توابع:
- اعلامیههای توابع کاملاً هوئیست میشوند، به این معنا که هم اعلامیه و هم تعریف تابع به بالای کد منتقل میشود، بنابراین میتوانید تابع را قبل از اینکه در کد تعریف شود، فراخوانی کنید.
myFunction(); // درست کار میکند
function myFunction() {
console.log(“Hello!”);
}
- Let و Const:
- متغیرهایی که با
let
وconst
اعلام شدهاند نیز هوئیست میشوند، اما مقداردهی نمیشوند. این بدین معناست که آنها در “منطقه مرده موقتی” (TDZ) از ابتدای بلوک تا زمانی که اعلامیه آنها مورد پردازش قرار گیرد، وجود دارند و دسترسی به آنها قبل از مقداردهی باعث ایجاد خطای ReferenceError میشود.
- متغیرهایی که با
console.log(a); // ReferenceError
let a = 10;
هوئیستینگ میتواند منجر به رفتارهای غیرمنتظره شود، به ویژه با var
، بنابراین مهم است که تفاوتهای آن را درک کرده و از let
و const
استفاده کنید تا رفتارهای قابل پیشبینیتری داشته باشید.
4o mini
دیدگاهتان را بنویسید