آموزش برنامه نویسی - تاپ دمی
بررسی var ، let و const  در جاوا اسکریپت

بررسی var ، let و const در جاوا اسکریپت

جاوا اسکریپت

22 شهریور، 1400

پس از معرفی ES6 دو روش جدید برای تعریف متغیر ها در جاوا اسکریپت معرفی شد در این مقاله سعی داریم به بررسی و مقایسه var ، let و const بپردازیم و به صورت مختصر و مفید با تفاوت های آن ها آشنا شویم.

پس از معرفی ES2015 یا همان ES6 دو روش جدید برای تعریف متغیر ها در جاوا اسکریپت معرفی شد (let و const)

در این مقاله سعی داریم ابتدا با بررسی انواع حوزه در زبان شیرین جاوا اسکریپت اطلاعاتی بدست آوریم و پس از آن به بررسی و مقایسه ی var ، let و const بپردازیم.

انواع حوزه در جاوا اسکریپت :

در جاوا اسکریپت سه نوع حوزه به نام های سراسری global scope ، محلی Local scope و حوزه block scope که در Es6 معرفی شد وجود دارد.

global scope :

به متغیر های می گویند که به صورت سراسری تعریف می شوند .

Local scope یا function scope :

به متغیر های می گویند که به صورت محلی یا داخل تابع تعریف می شوند.

block scope :

به متغیر های گفته می شود که داخل براکت { } تعریف می شوند.

نکته 1: متغیر های که به صورت سراسری تعریف می شوند در همه جا قابل دسترسی هستند.

// Global Scope
let sayName = "ali”;
mayName(){

    console.log(sayName); // ali

}
mayName();

نکته 2: متغیر های که به صورت محلی تعریف می شوند فقط داخل خود تابع قابل دسترسی هستند.

// Global Scope
checkName() {

// Local Scope

var sayName = "ali";
console.log(sayName);
}
checkName(); // ali
console.log(name); : name is not defined

نکته 3: متغیر های که با let و const داخل براکت تعریف می شوند فقط داخل همان براکت قابل دسترسی هستند .

// Global Scope

}
//block scope

let age = 20;
{
Console.log(age) //age is not defined

نکته4: متغیری که با var داخل یک براکت تعریف شود بیرون از براکت نیز قابل دسترسی است.

// Global Scope

}
//block scope
Var age = 20;
{
Console.log(age) //20

Var چیست ؟

تا قبل از معرفی ES6 تنها راه ایجاد متغیر ها استفاده از var بود دامنه متغیر های که با var تعریف می شوند به صورت سراسری یا function scope هستند از مشکلات var می توان به تعریف متغیری دیگر با نام متغیر ی که قبلا با همان نام تعریف شده است اشاره کرد .

مانند مثال زیر :


var sayName = "ali";

var age = 15;
.
.
.
if (age < 18) {
    var sayName = "mohammad";
}

console.log(sayName)   // "mohammad"

let چیست ؟

متغیر های که با let تعریف می شوند block scope هستند و می توانند مقدار جدیدی بگیرند ولی امکان تعریف مجدد آنها وجود ندارد.

    let age = 20;
    age = 28; 

مثال بالا کاملا صحیح است و به خطایی وجود ندارد اما در مثال زیر :

let age = 20;
let age = 25;

با خطا مواجه می شویم زیرا متغیری با نام یکسان را دوبار تعریف کرده ایم .

Const چیست ؟

ویژگی های const مانند let است با این تفاوت که مقدار متغیری که با const تعریف می شود ثابت است.

تفاوت let با var در چیست ؟

دسترسی به خارج از حوزه برای متغیری که با let ایجاد شده با خطا مواجه می شود زیرا block scope است ولی برای var اینگونه نیست زیرا function scope است .

تفاوت const با let در چیست ؟

Const و let بسیار شبیه به هم عمل می کنند و تفاوت آن ها در مقدار ثابت بودن در const است .

var-let-and-const

موفق باشید.

توسعه دهنده وب

شروع آشنایی من با دنیای برنامه نویسی 9 سال پیش بود ، اول مسیر با وردپرس آشنا شدم و بعد از اون شروع به یادگیری زبان جاوا اسکریپت کردم و رفته رفته سعی کردم یک برنامه نویس Front-end بشم که به مبحث گرافیک هم علاقه منده و هر روز تلاش میکنه تا پیشرفت کنه و اگر تجربه ای داره با بقیه به اشتراک بزاره.

مقالات مشابه