در مقاله قبل "همه چیز از یک متغیر شروع میشود" به معنی و مفهوم متغیر و ساختار های متغیر ها پرداختیم و همچنین مثال های عملی از متغیر در چند زبان مختلف زدیم تا براتون بیشتر جا بیافته. امام در این مقاله به سراغ سه نوع متفاوت از تعریف متغیر در زبان برنامه نویسی جاوا اسکریپت رفتیم و به این مبحث پرداختیم که چند نوع هستند چه تفاوتی دارند و ...
در زبان برنامه نویسی جاوا اسکریپت سه کلمه کلیدی برای تعریف متغیر وجود داره. "var" , "let , "const" در ادامه بیشتر با این کلمه کلیدی ها اشنا میشیم
### نکته کلمه کلیدی یعنی کلمات که توسط اون زبان برنامه نویسی رزرو شده اند.
تفاوت بین کلمه کلیدی های `var`، `const` و `let` در زبان برنامه نویسی جاوااسکریپت (JavaScript) مربوط به نحوه تعریف و استفاده از متغیرها است.
var name = 'Rayan Jaber';
قبل از ورود اکما اسکریپت ورژن 6 تنها کلمه کلیدی برا تعریف متغیر در زبان جاوا اسکریپت بود. این نوع تعریف دارای اشکالات بود که در ادامه قصد دارم به آن اشاره ایی داشته باشم. متغیر هایی که با Var شروع بشوند محدود بلاکی ندارند و کل پروژه قابل دسترسی هستند مثلا :
var num1 = 8;
function numbers () {var num1 = 9;}
الان اگر دقت کنید هر دو متغیر یک نام هستن و در واقع خروجی ما الان عدد 9 رو در خروجی میبینیم. و اینکه یک مشکل هست. یک مشکل دیگه var داره اینه که وقتی ما دو تا متغیر با یک نام تعریف میکنیم اروری دریافت نمیکنیم ! مثلا :
var num = 8;
var num = 9;
این کد خطایی ندارد و در خروجی مقدار 9 را میبینیم که یک مشکل است در واقع .
کلمه کلیدی let از اکما اسکریپت ورژن ششم به بعد به جاوااسکریپت اضاف شد . متغیر هایی که با let تعریف میشوند بر عکس var نمیتونن هم نام باشن و اگر متغیر هم نامی تعریف بکنیم با ارور مواجه میشیم. همچنین
متغیر هایی که با let تعریف میشوند محدودیت بلاکی دارند مثلا :
let num1 = 8;
function numbers () {
let num1 = 9; console.log(num1)
} console.log(num1)
در خروجی اول 9 و بعد 8 رو به ترتیب در خروجی میگیریم. متغیر mutable , let هستند یعنی میشود مقدارشون رو در هر جای برنامه به دلخواه تغییر داد.
کلمه کلیدی const هم از اکما اسکریپت ورژن ششم به بعد به جاوااسکریپت اضاف شد . const کاملا شبیه به let هست با این تفاوت که مقدار ثابت دارد. یعنی وقتی اولین بار به او مقدار میدهیم دیگر قابل تغییر نیست.
امیدوارم مفهوم رو رسونده باشم و شما عزیزان هم لذت برده باشید.