با جستجویی که کردم، متوجه شدم بعضی از افراد عبارت "use strict"; رو به کدهای جاوااسکریپتشون اضافه میکنن.متأسفانه، گوگل اطلاعات زیادی درباره تاریخچه این عبارت ارائه نداد. مطمئناً باید مربوط به نحوه تفسیر جاوااسکریپت توسط مرورگر باشه، ولی نمیدونم اثرش چیه.
پس "use strict"; چیه، چه معنایی داره و آیا هنوز اهمیت داره؟
آیا مرورگرهای فعلی به عبارت "use strict"; پاسخ میدن یا این برای آینده است؟
این فقط یه رشته هست که شما توی فایلهای جاوااسکریپتتون میذارید (یا در ابتدای فایل یا داخل یه تابع) و به این شکل به نظر میرسه:
"use strict";
قرار دادن این عبارت توی کد الان نباید باعث مشکل با مرورگرهای فعلی بشه چون فقط یه رشته است. ممکنه در آینده مشکلاتی با کد شما ایجاد کنه اگر کدتون با قوانین این عبارت سازگار نباشه. مثلاً، اگر الان foo = "bar" رو بدون تعریف کردن foo اول بنویسید، کدتون شروع به خراب شدن میکنه... که به نظر من این یه چیز خوبه.
جاوا اسکریپت به صورت پیش فرض در حالت غیر سختگیرانه کار میکنه ، ولی وقتی از use strict استفاده کنیم حالت به سختگیرانه تغییر میکنه.
این حالت اولین بار در نسخه ECMAScript 5 (ES5) در سال 2009 معرفی شد هدف از معرفی حالت سختگیرانه، بهبود کیفیت کد و جلوگیری از اشتباهات رایج در زمان توسعه کد در جاوااسکریپت بود. استفاده ازش اختیاریه و تقریبا تمام مرورگرهای مدرن از حالت use strict پشتیبانی میکنن