آموزش جاوا اسکریپت – فصل بیست و چهارم: Strict Mode

در زبان جاوا اسکریپت قابلیتی به نام strict mode وجود دارد که محدودیت های بسیاری را برای برنامه‌نویسی اعمال می کند اما باعث ایجاد یک اسکریپت بدون نقص خواهد شد. فصل بیس و چهارم آموزش گام به گام جاوا اسکریپت نتران به شرح نحوه استفاده از قابلیت strict mode در زبان جاوا اسکریپت اختصاص دارد.

جاوا اسکریپت - فصل بیست چهارم: Strict Mode

زبان برنامه نویسی جاوا اسکریپت یک زبان برنامه نویسی پویا است (loosely typed). این قابلیت زبان جاوا اسکریپت باعث شده است تا در بسیاری از موارد، پیغام خطا ایجاد نکند و خود را با انواع مختلف داده برای حل مشکل تطبیق دهد.

اگر شما با زبان های سمت سرور مانند جاوا و سی شارپ کار کرده باشید متوجه محدودیت بسیار زیاد در تعریف انواع مختلف در این زبان ها شده اید که در جاوا اسکریپت به صورت پیشفرض وجود ندارد.

به عنوان مثال در آن زبان ها کامپایلر پیغام خطا ایجاد خواهد کرد اگر شما بخواهید که به یک متغیر قبل از تعریف کردن آن دسترسی پیدا کنید.

در زبان جاوا اسکریپت قابلیتی به نام strict mode وجود دارد که محدودیت های بسیاری را برای برنامه‌نویسی اعمال می کند اما باعث ایجاد یک اسکریپت بدون نقص خواهد شد.

عملیات هایی که در حالت strict mode قابل انجام نیستند

در زبان برنامه نویسی جاوا اسکریپت هنگامی که از strict mode استفاده می کنید کارهای زیر را قادر نیستید که انجام دهید:

  • استفاده از متغیرهای تعریف نشده یا همان undefined
  • استفاده از کلمات کلیدی رزرو شده برای جاوا اسکریپت به عنوان نام متغیر یا نام فانکشن
  • استفاده دو بار از یک نام صفت برای یک object
  • استفاده دوبار از نام پارامتر در یک فانکشن
  • نسبت دادن مقدار به صفت های read-only
  • ویرایش شی arguments
  • لیترال های عددی نوع هشت هشتی
  • دستور with
  • استفاده از فانکشن eval برای ساخت متغیر

مثالی از strict mode با جاوا اسکریپت

در زیر مثالی از هر یک از موارد بالا مشاهده خواهید کرد:

"use strict";
x = 1; // ارور، متغیر تعریف نشده

var for = 1; // ارور، کلمه کلیدی رزرو شده
var if = 1; // ارور، کلمه کلیدی رزرو شده

/* ارور، دو تا صفت با یک نام توی آبجکت */
var myObj = { myProp: 100, myProp:"test strict mode" };

/* ارور، پارامتر تکراری توی فانکشن */
function Sum(val, val){return val + val };

/* ارور، تلاش برای تغییر اطلاعاتی که فقط قابل خواندن هستند
read-only
*/
var arr = [1 ,2 ,3 ,4, 5];
arr.length = 10;


/* ارور، تلاش برای تغییر پارامتر آرگیومنتس */
function Sum(val1, val2){
    arguments = 100; // error
}

var oct = 030; //ارور، لیترال هشت هشتی

/* ارور، استفاده از with */
with (Math){
    x = abs(200.234, 2);
};


eval("var x = 1"); // ارور استفاده از eval

فصل 24 – مثال 1

قابلیت strict mode را می توان فقط درون یک فانکشن نیز اعمال کرد. به صورت زیر این کار انجام پذیر است:

x = 1; //بدون مشکل

function sum(val1, val2){
    "use strict";

     result = val1 + val2; //ارور

    return result;
}

فصل 24 – مثال 2

ویدیوها و مطالب مشابه