میخوای وارد بازار کار بشی و محصولات خودت رو بفرشی همین الان ثبت نام کن
0

حالت سختگیرانه جاوا اسکریپت

حالت سختگیرانه یا Strict mode حالتی است که به برنامه نویس اجازه نمی دهد از برخی ویژگی های زبان جاوا اسکریپت که باعث بهم ریختگی کد و بروز خطای منطقی در اجرای کد می شود، استفاده کند. در ادامه به معرفی این ویژگی ها و نحوه استفاده از حالت Strict mode می پردازیم.

عبارت "use strict"; اعلام می کند که کد جاوا اسکریپت باید در “حالت سختگیرانه” اجرا شود.

دستورالعمل “حالت سختگیرانه”

دستورالعمل "use strict" برای اولین بار در نسخه ۵ ECMAScript منتشر شد.

عبارت "use strict"; یک دستور نیست ، بلکه یک عبارت متنی ثابت است ، که در نسخه های قبلی جاوا اسکریپت نادیده گرفته شده است.

هدف عبارت "use strict" این است که نشان دهد کد جاوا اسکریپت باید در “حالت سختگیرانه” اجرا شود.

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

همه مرورگرهای مدرن به جز Internet Explorer 9 و پایین تر از “حالت سختگیرانه” پشتیبانی می کنند:

دستورالعملگوگل کروماینترنت
اکسپلورر
فایرفاکسسافاریاُپرا
“use strict”۱۳٫۰۱۰٫۰۴٫۰۶٫۰۱۲٫۱

 

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

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

"use strict" فقط یک رشته است ، بنابراین اینترنت اکسپلورر ۹ حتی اگر این مسئله را نفهمد ، خطایی نمی دهد.

اعلام حالت سخت

حالت سختگیرانه با اضافه کردن “use strict” به ابتدای یک اسکریپت یا یک تابع اعلام می شود .

اگر حالت سختگیرانه در ابتدای یک اسکریپت اعلام شود، دامنه سراسری دارد (کلیه کدهای موجود در اسکریپت در حالت سختگیرانه اجرا می شوند):

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

کامپایل یک عبارت عددی مانند (۴ + ۵;) یا یک رشته ("John Doe";) در یک برنامه جاوااسکریپت هیچ عارضه جانبی ندارد و به سادگی با یک متغیر غیر موجود، کامپایل شده و از بین می رود.

بنابراین "use strict"; فقط برای کامپایلرهای جدید که معنای آن را درک می کنند اهمیت دارد.

چرا حالت سختگیرانه؟

حالت سختگیرانه نوشتن جاوا اسکریپت “امن” را آسان تر می کند.

حالت سختگیرانه “سینتکس های بد پذیرفته شده” را به خطاهای واقعی تغییر داده است.

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

در حالت عادی جاوا اسکریپت، یک توسعه دهنده هیچ گونه بازخورد خطایی را در هنگام اختصاص مقدار به خصوصیات غیرقابل نوشتن (مثل متغیری که وجود ندارد، یا ویژگی فقط خواندنی) دریافت نمی کند.

در حالت سختگیرانه، هرگونه انتساب به یک خصوصیت غیرقابل نوشتن، یک خصوصیت فقط گیرنده ، یک خصوصیت غیر موجود ، یک متغیر غیر موجود یا یک شیء غیر موجود؛ خطایی را به همراه خواهد داشت.

چه کارهایی در حالت سختگیرانه جاوا اسکریپت مجاز نیست؟

استفاده از متغیر بدون تعریف آن مجاز نیست:

استفاده از یک شی بدون تعریف آن مجاز نیست:

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

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

نوشتن روی یک ویژگی فقط خواندنی مجاز نیست:

 

استفاده از عبارت with مجاز نیست:

“use strict”;
with (Math){x = cos(2)};

به دلایل امنیتی ، eval() اجازه ایجاد متغیرهایی در دامنه ای که از آن فراخوانی شده است، ندارد:

“use strict”;
eval (“var x = 2”);
alert (x);

کلمه کلیدی this در توابع رفتار متفاوتی در حالت سختگیرانه دارد.

کلمه کلیدی this به شی که تابع را فراخوانی کرده، اشاره دارد.

اگر شیء مشخص نشده باشد ، مقدار this در توابع در حالت سختگیرانه undefined خواهد بود و در حالت عادی به شیء سراسری (پنجره) اشاره می کند:

اثبات آینده!

کلمات کلیدی که برای نسخه های آینده جاوا اسکریپت ذخیره شده اند ، نمی توانند به عنوان نام متغیر در حالت سختگیرانه استفاده شوند.

کلمات رزرو شده، اینها هستند:

  • implements
  • interface
  • let
  • package
  • private
  • protected
  • public
  • static
  • yield

“use strict”;
var public = ۱۵۰۰;

مواظب باش!

دستورالعمل “use strict” فقط در ابتدای اسکریپت یا یک تابع شناخته می شود.

 

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

نظراتتون رو زیر همین پست با ما به اشتراک بگذارید.

ارسال دیدگاه

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

×

سلام کاربر عزیز

هر سوالی دارید در این بخش هستیم تا شما رو راهنمائی کنیم

روی لوگومون کلیک کنید

× چطور میتونم کمکتون کنم؟