حالت مدرن “use strict” در جاوا اسکریپت

JavaScript در طول سالیان متمادی بدون ایراد به کار خود ادامه داده و در طول این سال‌ها امکانات مختلفی به این زبان اضافه شده بدون آن‌که در کارکرد امکانات قبلی خللی وارد کند و این یکی از خوبی‌های جاوا اسکریپت است که در هر شرایطی کدهای قدیمی به خوبی کار می‌کنند.

این شرایط تا قبل از ارائه نسخه استاندارد اِکما ECMAScript 5 (ES5) برقرار بود. با آمدن استاندارد جدید، ویژگی‌های زیادی به زبان جاوا اسکریپت افزوده شد و حتی برخی ویژگی‌های قدیمی دستخوش تغییراتی شد و برای اینکه کدهای قدیمی به درستی کار کنند این تغییرات جدید به صورت پیشفرض غیرفعال هستند برای فعال کردن تغییرات جدید اعمال شده باید از “use strict” در ابتدای کد جاوا اسکریپت خود استفاده کنید.

“use strict”

برای فعال کردن حالت مدرن در جاوا اسکریپت باید عبارت رشته‌ای "use strict" یا 'use strict' در بالاترین خط و در ابتدای کد قرار داد، برای مثال:

"use strict";
// this code works the modern way
...

به زودی با توابع آشنا خواهیم شد و از آنها برای بخش‌بندی کد و فرایند حل مساله استفاده خواهیم کرد شما می‌توانید “use strict” را در ابتدای کد تابع قرار دهید تا فقط این حالت در تابع فعال گردد ولی بیشتر در ابتدای کل کد قرار می‌گیرد.

نکته اول : اطمینان حاصل کنید که “use strict” در ابتدای کد قرار بگیرد

در غیر از این صورت حالت مدرن فعال نخواهد شد. برای مثال در کد زیر حالت مدرن فعال نخواهد شد.

alert("some code");
// "use strict" below is ignored--it must be at the top

"use strict";

// strict mode is not activated

تنها چیزی که می‌تواند قبل از “use strict” قرار گیرند کامنت‌ها هستند.

نکته دوم: امکان کنسل کردن حالت مدرن در جاوا اسکریپت وجود ندارد

برای مثال کد مانند "no use strict" وجود ندارد تا از نقطه‌ای به بعد حالت مدرن را غیرفعال کند، در واقع حالت مدرن فقط و فقط در ابتدای کد قرار می‌گیرد و شما می‌توانید تصمیم بگیرد که آن را فعال و یا غیرفعال کنید.

کنسول توسعه دهنده در مرورگر

وقتی از کنسول توسعه‌دهنده برای اجرای کد استفاده می‌کنید، فراموش نکنید که به صورت پیش‌فرض “use strict” غیرفعال است. برای فعال کردن و تست کد در کنسول مرورگر باید به شیوه زیر کد بنویسید، یعنی ابتدا عبارت “use strict” را تایپ و با Shift+Enter به خط بعدی بروید و کد خود را تایپ کنید و در نهایت آن را اجرا کنید:

'use strict'; <Shift+Enter for a newline>
//  ...your code
<Enter to run>

روش فوق در اکثر مرورگرها کار می‌کند به خصوص در فایرفاکس و کروم، اگر در یک مرورگر چنین کدی برای شما کار نکرد کافیست مانند کد زیر دستور use strict را در یک تابع قرار دهید.

(function() {
  'use strict';

  // ...your code here...
})()

آیا باید از “use strict” استفاده کنیم؟

آیا باید قبل از نوشتن هر کد جاوا اسکریپت ابتدا عبارت “use strict” را در کد خود بنویسیم تا حالت مدرن را فعال کنید؟ برای پاسخ به این سؤال ابتدا باید بگویم که با استفاده از بسیاری از ویژگیهای جدید ECMA مانند کلاس‌ها و ماژول‌ها حالت مدرن به صورت خودکار فعال شده و نیاز به استفاده از “use strict” نیست.

در این دوره آموزشی جاوا اسکریپت فرض ما بر استفاده از حالت مدرن در تمامی کدهاست و به ندرت از کدهای قدیمی استفاده می‌کنیم و در هرجایی لازم باشد تفاوت آن دو را بررسی خواهیم کرد.

خلاصه درس:

با ارائه نسخه‌های جدید و استاندارد شده در سال‌های اخیر تعدادی از کدهای قدیمی‌تر جاوا اسکریپت دستخوش تغییراتی شد، این تغییرات ممکن بود بر روی کدهای که با نسخه‌های جاوا اسکریپت قدیمی نوشته شده باشد تاثیر منفی بگذارد، به همین خاطر حالتی تحت عنوان حالت مدرن به وجود آمد که به صورت پیش‌فرض غیرفعال است و با فعال کردن آن تغییرات جدید در دسترس برنامه نویس قرار می‌گیرند. برای فعال سازی حالت مدرن از دایرکتیو “use strict” در ابتدای کد استفاده میکنیم.

تمرینات درس:

  • سعی کنید با جستجو، تعدادی از دستوراتی که در نسخه Ecma دچار تغییر شده اند را بیابید و با هم مقایسه کنید.

آزمون درس:

اگر مطالب فوق را به خوبی درک کرده و آماده درس بعدی هستید بهتر از قبل از رفتن به درس بعدی خودتان را با آزمون ساده زیر محک بزنید.

آزمون درس حالت مدرن درجاوااسکریپت Google form

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *