Use Strict

در جاوااسکریپت، "use strict" یک مد سخت‌گیرانه (Strict Mode) است که باعث می‌شود کد امن‌تر، بهینه‌تر و خطاپذیری کمتر داشته باشد.
این حالت از اشتباهات رایج جلوگیری می‌کند و بعضی ویژگی‌های قدیمی و ناسازگار زبان را غیرفعال می‌کند.

🔹 فعال کردن Strict Mode

1. در سطح یک فایل یا اسکریپت

"use strict"; let x = 3.14; console.log(x);

2. در سطح یک تابع

function myFunction() { "use strict"; y = 10; // خطا! y بدون let/var/const تعریف شده } myFunction();

🔹 ویژگی‌ها و مزایای "use strict"

  1. اجبار تعریف متغیرها

    • بدون var, let یا const نمی‌توان متغیر ایجاد کرد.

"use strict"; x = 3; // خطا: x is not defined
  1. غیرفعال کردن حذف خودکار this در توابع

    • در حالت عادی، this در توابع غیرمحدود به window اشاره می‌کند.

    • در Strict Mode، مقدار this اگر مشخص نشده باشد undefined است.

"use strict"; function f() { console.log(this); // undefined } f();
  1. اجتناب از نام‌های تکراری در پارامترها

"use strict"; function sum(a, a) { } // خطا!
  1. غیرفعال کردن ویژگی‌های منسوخ و ناامن

    • مثل with، که در Strict Mode غیرقانونی است.

"use strict"; with (Math) { x = cos(2); } // خطا!
  1. حفاظت از کلمات رزرو شده

    • استفاده از کلمات رزرو شده جدید ES مثل implements, interface, package خطا می‌دهد.

🔹 نکات کلیدی

  • Strict Mode روی کل فایل یا تابع جداگانه اعمال می‌شود.

  • باعث کاهش خطاهای پنهان و رفتارهای غیرمنتظره می‌شود.

  • پیشنهاد می‌شود همیشه در پروژه‌های جدید فعال باشد.

✅ خلاصه

  • "use strict" → فعال کردن حالت سخت‌گیرانه در جاوااسکریپت

  • مزایا: تعریف اجباری متغیر، جلوگیری از نام‌های تکراری، حفاظت از this، جلوگیری از ویژگی‌های منسوخ

  • استفاده: در بالای فایل یا داخل تابع