تفاوت var و let در جاوا اسکریپت چیست؟

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

var و let بسیار به هم شبیه هستند.به عبارتی برای تعریف متغیر تعریف می‌شوند و بعد از تعریف می‌توانیم به آن مقدار جدید اختصاص دهیم.

یکی از دلایلی که ترجیح می‌دهیم ازlet به جای var استفاده کنیم این است که var اجازه تعریف مجدد یک متغیر به برنامه نویس می‌دهد که باعث بروز خطا در برنامه می‌شود.ولی let از آن جلوگیری می‌کند:

 دلیل بعدی استفاده از به جای var این است که scope متغیرهای var ، محدوده function است.به عبارتیfunction scope است و نه block scope.

اگر کد بالا را اجرا کنید به شما خطا نمی دهد و عبارت shahrooz را روی صفحه چاپ می‌کند.این موضوع نیز باعث بروز خطا می‌شود.

به عبارتی function scope یعنی اگر ما هیچ functionی تعریف نکنیم هیچ scopeی در برنامه نخواهیم داشت.

بنابراین اگر کد زیر را اجرا کنیم با خطا مواجه خواهیم شد:

دلیل دیگر نیز این هست که می‌توان قبل از تعریف یک متغیر به آن دسترسی پیدا کرد:

اگر فکر می‌کنید که کد زیر با خطا مواجه می‌شود اشتباه می‌کند.بعد از اجرای کد زیر undefined روی صفحه چاپ خواهد شد.در صورتیکه اگر از let استفاده کنید برنامه خطا می‌دهد.

بنابراین ما برای جلوگیری از خطا از let به جای var استفاده خواهیم کرد.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *