این مقاله درباره Strict Mode در جاوا اسکریپت برات جذاب خواهد بود: John Resig - ECMAScript 5 Strict Mode, JSON, and More
بعضی از بخش های جالبش رو نقل قول می کنم:
Strict Mode قابلیتی جدید در ECMAScript 5 است که به شما اجازه می دهد یک برنامه یا تابع را در context عملیاتی "strict" قرار بدید. این context اجباری یا strict از به اجرا در آمدن یک سری اقدامات خاص جلوگیری می کند و exception های بیشتری فراخوانی می شود.
و:
Strict Mode به چند طرق کاربردی خواهد بود:
- جلوی یک سری اشتباهات رایج در کدنویسی را می گیرد و exception می دهد.
- هنگامی که اقدامات نسبتا "ناایمن" صورت می گیرد از آن جلوگیری می کند یا خطا نشان می دهد. (مثلا اقدام به دسترسی به یک شی global)
- قابلیت هایی که گمراه کننده است یا توضیحات ضعیفی درباره آن ها ارائه شده را غیرفعال می کند.
همچنین به یاد داشته باش که میتونی "strict mode" رو در سطح کل فایل اعمال کنی.... یا میتونی برای یک تابع خاص در نظر بگیری (همچنان در حال نقل قول از مقاله جان رسیگ هستم:)
// Non-strict code...
(function(){
"use strict";
// Define your library strictly...
})();
// Non-strict code...
که میتونه در مواقعی که کد های جدید و قدیمی رو با هم ترکیب کردی، کاربردی باشه ;-)
بنابراین، اینطوری در نظر می گیرم که این درست مثل "use strict"
هست که میتونی در Perl ازش استفاده کنی: با شناسایی چیز های بیشتر و در واقع نگاه جزئی تر که ممکنه برنامه رو با مشکل روبرو کنه، کمک می کنه تا خطا های کمتری داشته باشی.
Strict mode در حال حاضر توسط تمامی مرورگر های اصلی پشتیبانی میشه.
در داخل ماژول های بومی ECMAScript (با دستور های import
و export
) و کلاس های ES6 حالت Strict همیشه فعال هست و امکان غیرفعال کردن اون وجود نداره.