معمولا روزانه چند نفر از روش های مختلف با ما در تماس هستند و درخواست این رو دارند که در مورد تعریف متغییر در زبان های مختلف مطلب بذاریم ما هم سعی میکنیم که به درخواست این دوستان جواب دهیم . در بین این درخواست ها ، درخواست معرفی روشهای مختلف تعریف متغیرها در جاوااسکریپت بیشتر از بقیه بوده ، به خاطر همین تصمیم گرفتیم اولین مقاله در مورد تعریف متغییر در جاوااسکریپت باشه چون متقاضی بیشتری رو دارد .
در این مقاله آموزشی قصد داریم روشهای مختلف تعریف متغیرها در جاوااسکریپت را برایتان توضیح دهیم. متغیرها ظرفهایی هستند که در موقعیتهای مختلف مقادیر مختلفی میگیرند. هر متغیر یک نام و یا مقدار دارد که در داخل کد از آن استفاده خواهد شد. دستور ایجاد یک متغیر پیش از هر کد دیگری در برنامه اجرا میشود.
ایجاد متغیرها در جاوا اسکریپت :
1- اعلان :
متغیر یک نام منحصر بفرد گرفته و در محدودهی اجرایی خودش ثبت میشود.
2- مقداردهی اولیه:
بعد از تعریف متغیر یک مقدار اولیه پیش فرض به آن داده میشود. در واقع متغیر ها مکانهایی از حافظه هستند که دادهها را در خود ذخیره میکند.
3- انتصاب :
زمانی اتفاق میافتد که مقدار خاصی به متغیر اختصاص داده شود.
“جاوااسکریپت به حروف بزرگ و کوچک حساس است. برای مثال var با Var دو عبارت متفاوت برای این زبان تلقی میشود.”
تعریف متغیر ها
var :
var x; // Declaration and initialization x = "Hello World"; // Assignment // Or all in one var y = "Hello World";
var یکی از معمولترین اعلانهایی است که برای تعریف متغیرها در جاوا اسکریپت استفاده میشود. تا پیش از مطرح شدنECMAScript 6 کلید واژهی var تنها راه تعریف متغیرها در جاوا اسکریپت به حساب میامد.
در صورتیکه میخواهید یک متغیر به صورت محلی تعریف شود، از عبارت var استفاده کنید. در غیر اینصورت واژهی مورد نظر به عنوان یک متغیر عمومی شناخته میشود.
مثال :
function sayHello(){ var hello = "Hello World"; return hello; } console.log(hello);
در قطعه کد بالا متغیر hello فقط برای sayHello تعریف شده است. اما در کدی که در ادامه آمده است، متغیر hello عمومی است.
var hello = "Hello World"; function sayHello(){ return hello; } console.log(hello);
Let :
let x; // Declaration and initialization x = "Hello World"; // Assignment // Or all in one let y = "Hello World";
واژهی Let مدل جدیدی از var است که در ES6 معرفی شد. با استفاده از این کلمهی کلیدی متغیر به یک تابع محدود نشده و میتوانید ان را برای یک بلوک تعریف کنید. یک بلوک توسط {} معرفی میشود.
var name = "Peter"; if(name === "Peter"){ let hello = "Hello Peter"; } else { let hello = "Hi"; } console.log(hello);
در قطعه کد بالا متغیر hello بیرون از بلوک if در دسترس نخواهد بود. let درصد خطاهای برنامهتان را کمتر میکند.
var name = "Peter"; if(name === "Peter"){ let hello = "Hello Peter"; console.log(hello); } else { let hello = "Hi"; console.log(hello); }
Const :
const x = "Hello World";
در ES 6 کلمهی جدید مطرح شد که به برنامهنویسان اجازه میداد متغیرهای خواندنی ایجاد کرده و به آنها مقدار دهند. متغیرهای ثابت برای نگهداری مقادیری استفاده میشوند که غیر قابل تغییرند. این مقادیر یک بار تعریف شده و در جاهای مختلف برنامه استفاده میشوند.
پیش از ارائهی ES6 تعریف مقادیر ثابت در جاوااسکرپت امکانپذیر نبود. اما حالا از کلمه کلیدی const برای تعریف این مقادیر استفاده میشود. واژهی const نیز مانند let دارای محدودهی بلوکی است.
متغیرهای عمومی :
متغیرهایی که به صورت var،let و const تعریف نشدهاند، اصطلاحا متغیرهای عمومی تلقی میشوند. این متغیرها حتی اگر در داخل تابع تعریف شده باشند، در تمام بخش های کد قابل دسترسی میشوند.
مثال :
function sayHello(){ hello = "Hello World"; return hello; } sayHello(); console.log(hello);
حوزه تعریف متغیر و Hoisting :
var، let و const تفاوت دیگری هم دارند که به دلیل وجود مفهومی به نام hoisting مطرح میشود. یکی دیگر از ویژگیهایی جاوااسکریپت این است که میتوانید متغیرها را قبل از تعریف شدن، استفاده کنید. به این مفهوم بالا بردن یا hoisting گفته میشود. به عبارت دیگر میتوان متغیر را مورد استفاده قرار داده و بعدا آن را تعریف کنید.
برای متغیرهای var در صورتی که متغیر بعدا تعریف نشده باشد، مقدار undefined برگردانده میشود در صورتیکه در متغیرهای let و const برنامه خطا میدهد.
“جاوا اسکریپت مقداردهیهای اولیه را hoist نمیکند.”
console.log(hello); var hello; hello = "I'm a variable";
var hello; console.log(hello); hello = "I'm a variable";
برای جلوگیری از بروز خطا در کدنویسی بهتر است متغیرهای خود را در ابتدای scope تعریف کنید.
شما اگر روش دیگری برای تعریف متغیر جاوااسکریپت میشناسید میتونید در بخش نظرات بگید تا به این صفحه اضافه کنیم .
دیدگاه کاربران
تعداد دیدگاه های کاربران : ۰ دیدگاه