آموزش جاوا اسکریپت – Strict Mode در جاوا اسکریپت

آموزش جاوا اسکریپت

در این بخش از سری آموزش جاوا اسکریپت قصد داریم در مورد م Strict Mode در جاوا اسکریپت صحبت کنیم.

جاوااسکریپت در ورژن ES5 خود Strict Mode را معرفی کرد.

استفاده از این حالت می تواند

  • کیفیت کدهای برنامه نویسی جاوا اسکریپت را بهبود بخشد.
  • برنامه نویس جاوا اسکریپت در این حالت آگاهانه تر کد می زند.
  • پیغام های خطا واضح تر بیان می شوند از این رو پیگیری ارورها راحت تر می شود.

با استفاده از Strict Mode مجبوریم که کدهای تمیزتری بنویسیم. هر چقدر کدهای تمیزتری بنوسیم کارایی برنامه بهتر خواهد بود.

 

نحوه استفاده از Strict Mode

برای فعال کردن Strict Mode تنها کاری که باید انجام دهید این است که عبارت ‘use strict’ را در ابتدای کدهای خود وارد کنید.

اگر میخواهید که تمام کدهایی که می زنید در حالت strict mode باشند، باید در ابتدای صفحه و قبل از تمام کدها عبارت ‘use strict’ را وارد کنید.

ولی اگر میخواهید فقط برای یک قسمت خاص از Strict Mode استفاه کنید، باید قبل از کد مورد نظرتون عبارت ‘use strict’ را قرار دهید.

نکته: عبارت “use strict” فقط در ابتدای اسکریپت یا تابع قابل شناسایی توسط مرورگر است. به علاوه, مرورگرهایی که Strict Mode را پشتیبانی نمی کنند (IE9 و به پایین) به سادگی آن را نادیده و جاوا اسکریپت را در حالت بدون strict تفسیر می کنند.

 

محدودیت های عمومی در Strict Mode

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

متغیرهای تعریف نشده مجاز نیستند

همانطور که از قبل هم می دانید, در Strict Mode همه متغیرها باید تعریف شوند. اگر یک مقدار را به آن اختصاص بدید و از قبل تعریف نکنید یک خطای RefrenceError ایجاد می شود

 

حذف یک متغیر یا تابع مجاز نیست

در Strict Mode اگر سعی در حذف یک تابع یا متغیر کنید, یک خطای سینتکس ایجاد می شود. به هر حال, حالت بدون Strict چنین تلاشی در سکوت به خطا بر می خورد و دستور delete برابر false می شود

مشابه آن اگر قصد حذف یک تابع در حالت Strict Mode داشته باشید خطای سینتکس ایجاد می شود :

 

تکرار نام پارامتر مجاز نیست

در Strict Mode اگر یک تابع دو یا چند پارامتر با نام یکسان داشته باشد, یک خطای سینتکس ایجاد می شود. حالت بدون strict خطایی رخ نمی دهد.

 

متد eval نمی تواند محدوده (scope) را تغییر دهد

در Strict Mode برای مسایل امنیتی, کدهای پاس داده شده به eval() نمی تواند متغیرها را تعریف/ویرایش دهد یا یک تابع در اسکوپ را تعریف کنید.

 

کلمات eval و arguments نمی توانند به عنوان شناسه استفاده شوند.

در Strict Mode , نام های eval و arguments مثل کلمات کلیدی در نظر گرفته می شوند بنابراین نمی توانند به عنوان نام متغیرها, توابع یا نام پارامترهای تابع و غیره.. استفاده شوند.

 

استفاده از دستور with مجاز نیست

در Strict Mode دستور with مجاز نیست. دستور with خصوصیت و متدهایی شیء را به محدوده (scope) فعلی اضافه می کند.

بنابراین دستورات تو در توی داخل دستور with می تواند خصوصیات و متد های شیء را بصورت مستقیم و بدون اشاره به آن صدا بزند.

 

رایت در خصوصیات Read-only مجاز نیست.

در Strict Mode اختصاص یک مقدار به خصوصیات ,not-writable خصوصیات get-only یا خصوصیات non-existing با خطا مواجه می شود. در حالت بدون strict این خطا در سکوت اتفاق می افتد.

 

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

در Strict Mode , تلاش برای ساخت خصوصیات جدید برور روی شیء غیرقابل انعطاف یا ناموجود باعث ایجاد خطا می شود. در حالت بدون strict این خطا در سکوت اتفاق می افتد.

 

اعداد هشت هشتی مجاز نیست.

در Strict Mode اعداد هشت هشتی (octal : اعداد با پیشوند یک صفر مثل ۰۱۰ یا ۰۳۷۷) مجاز نیستند. درحالی که همه مرورگرها در حالت بدون strict آن را پشتیبانی می کنند.

در ES6 اعداد octal با پیشوند ۰o مثل ۰o10, 0o377 پشتیبانی می شوند.

بطور واضح در مثال بالا می بینید که Strict Mode می تواند از ایجاد اشتباهات معمول در حین نوشتن برنامه جاوا اسکریپت جلوگیری کند

 

کلمات کلیدی رزرو شده مجاز نیستند.

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

با اعمال Strict Mode هم که محدودیت استفاده از آن در آینده را نیز اعمال می کند.

طبق آخرین استاندارد ECMAScript 6 یا همان ES6 , این کلمات کلیدی رزرو شده که در کد Strict Mode پیدا شدند : await, implements, interface, package, private, protected, public و strict .

نکته: کلمات رزرو شده, که به نام کلمات کلیدی خوانده می شوند, کلمات خاص هستند که جزء سینتکس زبان جاوا اسکریپت هستند برای مثال var, if, for, function, …

 

مزایای استفاده از Strict Mode

  • کدها امن می شوند
  • ارورها واقعی تر می شود از این رو خطایابی راحت تر می شود
  • کارایی برنامه بالاتر می رود
  • کدها سالم و استاندارد می شوند
  • اصول کد نویسی رعایت می شود

 

امیدواریم در این بخش آموزش جاوا اسکریپت, از آموزش Strict Mode در جاوا اسکریپت نهایت استفاده را برده باشد.

هر سوالی داشتید ، از قسمت نظرات ارسال کنید . سریعا ، پاسخگوی سوالات شما هستیم .

موفق باشید.

حسن شفیعی علاقه خاصی به برنامه نویسی وب و موبایل دارم و هر روز تلاش می کنم به این حوزه مسلط تر شوم و اطلاعاتم را به شکل کاربردی برای علاقه مندان در وب به اشتراک بگذارم

آموزش های رایگان بیشتر در اینستاگرام ما ...

NETPARADIS /
مطالب زیر را حتما بخوانید
دیدگاه کاربران

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

    دوره های آموزشی