با عرض سلام خدمت کاربران محترم سایت پی وی لرن.
در این جلسه قصد داریم تا به مبحث قلمرو متغیر ها در جاوا اسکریپت JavaScript یا متغیر محلی در جاوا اسکریپت بپردازیم.
قلمرو ها در جاوا اسکریپت محدوده در دسترس بودن متغیر ها را مشخص می کند.
دو نوع قلمرو در جاوا اسکریپت وجود دارد:
هر تابع در جاوا اسکریپت یک قلمرو جدید اضافه می کند.
متغیر هایی که داخل تابع تعریف می شوند، خارج از تابع در دسترس نیستند.
متغیر هایی که داخل تابع تعریف می شوند، متغیر محلی نام دارند.
این متغیر ها فقط داخل تابع در دسترس هستند.
1 2 3 4 5 6 7 8 | // code here can NOT use carName function myFunction() { var carName = "Volvo"; // code here CAN use carName } |
به دلیل اینکه متغیر های محلی فقط داخل تابع خودشان شناخته می شوند، می توان در توابع مختلف متغیر هایی با نام یکسان تعریف کرد.
متغیر های محلی وقتی که تابع اجرا شود ایجاد می شوند و وقتی تابع به کار خود پایان می دهد، پاک می شوند.
متغیری که در خارج از یک تابع تعریف شود، متغیر سراسری نام دارد.
یک متغیر سراسری، قلمرو سراسری دارد. تمام اسکریپت ها و توابع در صفحه وب می توانند به آن دسترسی داشته باشند:
1 2 3 4 5 6 7 8 9 | var carName = " Volvo"; // code here can use carName function myFunction() { // code here can also use carName } |
نکته: توابع و اشیا object در جاوا اسکریپت به نوعی متغیر محسوب می شوند.
اگر مقداری را به یک متغیری که اعلام نشده است اختصاص دهید، به طور خودکار یک متغیر GLOBAL خواهد شد.
این مثال کد یک نام متغیر عمومی را اعلام می کند، حتی اگر مقدار در داخل یک تابع قرار داده شود.
1 2 3 4 5 6 7 | myFunction(); // code here can use carName function myFunction() { carName = "Volvo"; } |
تمام مرورگرهای مدرن از “جاوا اسکریپت” در “Strict Mode” پشتیبانی می کنند.
شما در مورد سینتکس استفاده از Strict Mode در بخش بعدی این دوره بیشتر می آموزید.
نکته : متغیرهای عمومی خودکار در حالت “Strict Mode” ایجاد نمی شوند.
در HTML، تمام متغیر های سراسری به شئ window تعلق دارند.
1 2 3 | var carName = "Volvo"; // code here can use window.carName |
lifetime متغیر ها هنگامی که تعریف می شوند، آغاز می شود.
متغیر های محلی هنگامی که کار تابع به اتمام رسیدف از بین می روند.
در یک مرورگر وب، متغیر های سراسری هنگامی که پنجره مرورگر یا تب tab را ببندید، از بین می روند.
اما همچنان برای صفحات جدید بارگذاری شده در همان پنجره قابل دسترس باقی می ماند.
جلسه آشنایی با قلمرو متغیر ها در جاوا اسکریپت JavaScript به پایان رسید.