تعریف متغیر با کلمه کلیدی const در نسخه جدید جاوااسکریپت یعنی es6 سال ۲۰۱۵ معرفی شده است.

 

چه زمانی از const استفاده میشود؟

به طور کل از const زمانی استفاده میشود که شما مطمئن باشید مقدار شما همیشه ثابت است و قرار نیست تغییر پیدا کند.
از const میتوان علاوه بر رشته ها در هنگام تعریف آرایه ها، توابع، عبارات باقاعده و آبجکتها استفاده کرد.

 

استفاده از ثابت ها در آرایه ها و آبجکت ها

استفاده از کلمه کلیدی const کمی گمراه کننده است و باید دقت کنید.
زمانی که یک متغیر که نوع داده اش آرایه یا آبجکت است با کلمه کلیدی const تعریف میکنید شما میتوانید مقدار المنت ها و خصوصیت های آن را در طول اسکریپت تغییر بدهید اما نمی‌توانید به طور کل نوع داده متغیر را تغییر دهید یا یک آرایه یا آبجکت دیگر را به آن اختصاص دهید.
برای مثال تا دیروز نوع داده متغیر شما با هر تعداد آیتمی، آرایه بود اما شما تبدیل به رشته کرده اید یا آرایه یا آبجکت دیگری را به اختصاص داده اید. خوب این ایجاد خطا می کند‌.

مثال درست از آرایه:

مثال اشتباه از آرایه:

یا

مثال درست از آبجکت:

مثال اشتباه از آبجکت:

متغیری که با const تعریف شود قابلیت تغییر مقدار آن در طول اسکریپت وجود ندارد و مقدارش ثابت است.

مثال:

یا

متغیر تعریف شده با const را نمی توان یکبار تعریف و یکبار دیگر در جایی دیگر مقداردهی کرد.

مثال درست:

مثال اشتباه:

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

مثال درست:

مثال اشتباه:

متغیر تعریف شده با const همانند let دارای محدوده و بلاک تعریف هستند.

مثال:

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

مثال:

 

حالت Hoisting در const

در واقع Hoisting به این معنی است که شما میتوانید متغیری را مقداردهی و استفاده کنید که قرار است بعدا تعریف شود.
این حالت در کلمه کلیدی var وجود دارد و برنامه ایرادی نمی گیرد.

مثال:

توجه: در صورت تعریف متغیر با var و مقداردهی آن در انتهای اسکریپت مقدارش به سمت بالای اسکریپت حرکت نمی کند و مقدارش undefined است.

مثال:

اما متغیری که با کلمه کلیدی const در انتهای اسکریپت تعریف می‌شود خود متغیر به سمت بالا حرکت می کند اما نه مقدارش بالا میرود نه می توان بالاتر مقداردهی و استفاده کرد. خطای بازگشتی ReferenceError خواهد بود.

مثال:

 

پشتیبانی از مرورگرها

مرورگر Chrome مرورگر Firefox مرورگر IE مرورگر Edge مرورگر Safari مرورگر Opera
از ۴۹ به بعد از ۳۶ به بعد این ویژگی در ie 11 و قبلتر از آن پشتیبانی نمیشود. از ۱۲ به بعد از ۱۰ به بعد از ۳۶ به بعد

 

شباهت های کلمه کلیدی var,let,const

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

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

 

تفاوت های کلمه کلیدی var,let,const

کلمه کلیدی var خیلی عمومی است و در هر بلاکی که تعریف شود در هرجایی قابل استفاده است. می‌توان آن را مقداردهی و استفاده کرد و بعداً تعریف کرد. در صورت مقداردهی در انتهای اسکریپت و استفاده آن قبل از تعریف شدن مقدار undefined را دارد. آن را میتوان در یک بلاک باز تعریف و مقدار دهی کرد.

اما کلمه کلیدی let در یک بلاک یکبار تعریف و میتوان مقدار آن را تعریف کرد. وابسته به بلاک تعریف خود است. امکان مقداردهی و استفاده از متغیری که بعداً قرار است تعریف شود را ندارد.

کلمه کلیدی const در یک بلاک یکبار تعریف و نمیتوان مقدار آن را تعریف کرد. وابسته به بلاک تعریف خود است. امکان مقداردهی و استفاده از متغیری که بعداً قرار است تعریف شود را ندارد.

دیدگاه خود را بیان کنید

این ایمیل برای عموم منتشر نمی شود