آموزش برنامه نویسی - تاپ دمی

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

ﺯﻣﺎﻥ ﻣﻄﺎﻟﻌﻪ: 3 دقیقه
بررسی 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

موفق باشید.

این مقاله برای شما چقدر مفید بود ؟

22 شهریور، 1400

اشتراک گزاری مقاله

مقالات مشابه

ویژگی های جدید ECMAScript 2021

ویژگی های جدید ECMAScript 2021

پس از معرفی es6 جاوا اسکریپت تغییرات زیادی کرد و حالا هر سال ویژگی های جدید به این زبان ب...

ادامه مطلب
چگونه برنامه نویسی را شروع کنم

چگونه برنامه نویسی را شروع کنم

در این مقاله به بررسی نحوه شروع برنامه نویسی ، چالش ها و سوالاتی که در ذهن هر کاربر برای...

ادامه مطلب
معرفی توابع در جاوا اسکریپت

معرفی توابع در جاوا اسکریپت

در این مقاله با بیان مثال به بررسی مزایا و نحوه تعریف و استفاده از توابع در جاوا اسکریپت...

ادامه مطلب