جاوا اسکریپت برای مدتهای طولانی، بدون داشتن مشکلات سازگاری (compatibility issues) پیشرفت میکرد، فیچرهای جدید اضافه میشدن بدون اینکه قدیمی ها تغییری کنن.
خوبی ای که داشت این بود که نیازی به تغییر کدهای فعلی نبود، ولی از اون طرف قضیه اگه از طرف سازندگان جاوااسکریپت کدی به اشتباه زده شده بود یا بهترین کیفیت رو نداشت برای همیشه موندگار بود!
داستان همین طور پیش رفت تا سال 2009 که ECMAScript 5 اومد فیچرهای جدید اضافه کرد و بعضی از فیچرهای قدیمی رو تغییر داد. برای اینکه کدهای قدیمی درست کار کنه خیلی از تغییرات رو بطور پیش فرض غیرفعال کرد تا هرجا که لازم باشه با اضافه کردن دایرکتیو "use strict" فیچرهای جدید فعال بشه.
وقتی این دایرکتیو بالای اسکریپت شما باشه، کل اسکریپت بصورت "مدرن" عمل میکنه، که این حالت مدرن شامل قابلیت استفاده از فیچرهایی مثل class و module هاست.
آیا نیازه همیشه دایرکتیو "use strict" رو بالای اسکریپت اضافه کنیم؟ نه، وقتی از قابلیت های مدرن استفاده می کنیم، دایرکتیو بصورت خودکار اضافه میشه. پس خیلی نگران بودن یا نبودنش بالای اسکریپت نباشیم ولی بهتره بدونیم چیه و از کجا اومده!