حالت سخت گیرانه (Strict Mode)
«حالت سخت گیرانه جاوااسکریپت» یعنی با دستور "use strict"؛ خطاهای مخفی، سریع تر آشکار می شوند. بنابراین، کد امن تر و منظم تر می شود.
اعلام حالت سخت گیرانه (use strict)
اگر ابتدای فایل بنویسی، همه فایل سخت گیر می شود.
"use strict";
x = 3.14;
اگر داخل تابع بنویسی، فقط همان تابع سخت گیر است.
x = 3.14;
myFunction();
function myFunction() {
"use strict";
y = 3.14;
}
چرا حالت سخت گیرانه مهم است؟
در حالت عادی، اشتباه تایپی متغیر، یک «سراسری (Global)» می سازد. اما اینجا همان اشتباه، خطا می شود. پس باگ ها زودتر دیده می شوند.
نمونه خطاهای رایج در Strict Mode
1) استفاده از متغیرِ اعلام نشده ممنوع است.
"use strict";
x = { p1: 10, p2: 20 };
2) حذف متغیر یا تابع مجاز نیست.
"use strict";
let x = 3.14;
delete x;
3) پارامترهای تکراری خطا دارند.
"use strict";
function sum(p1, p1) {
return p1;
}
4) عدد هشت پایه و Escape هشت پایه مجاز نیست.
"use strict";
let x = 010;
this در حالت سخت گیرانه
وقتی شیء صدا نزند، this برابر undefined می شود؛ نه window.
"use strict";
function myFunction() {
console.log(this);
}
myFunction();
کلمات رزرو آینده
نام های رزرو مثل public در Strict Mode متغیر نمی شوند.
"use strict";
let public = 1500;
گام های عملی
- "use strict" را بالای فایل قرار بده.
- یک اشتباه تایپی بساز و خطا را ببین.
- کد را اصلاح کن و دوباره اجرا کن.
جمع بندی سریع
- Strict Mode خطاها را زود نشان می دهد.
- متغیر بی اعلام خطا می شود.
- this بدون شیء، undefined است.
- نام های رزرو استفاده نشوند.
برای ارتباط مفهومی، صفحه بالابردن (Hoisting) و دامنه (Scope) را بخوان. همچنین حالت سخت گیرانه جاوااسکریپت در ناوبری سایت در دسترس است.
هشدار: "use strict" فقط در ابتدای فایل یا داخل ابتدای تابع معتبر است.
نکته: راهنمای کامل را در W3Schools: Strict Mode ببین.