مقدمه

در دو درس قبل با ماهیت Node.js و پیکربندی محیط توسعه برای تولید اپلیکیشن‌های Node.js آشنا شدیم و دیدیم که چطور می‌توانیم از Node.js REPL برای آزمایش کدهای جاوااسکریپت و اجرای آنها توسط مفسر Node.js استفاده کنیم. حالا این آمادگی را داریم که یک برنامه‌ی Hello World را ایجاد و اجرا کنیم.

ایجاد یک فایل جاوااسکریپت

قصد داریم یک فایل جاوااسکریپت ایجاد کنیم که یک پیغام را در کنسول نمایش می‌دهد. برای این کار، ادیتور خود را باز کنید، یک فایل با نام greeting.js ایجاد کنید و کد زیر را در آن وارد کنید:

Copy Icon greeting.js
'use strict';
console.log("Hello, world!");

حالا این فایل را ذخیره کنید. در ادامه، باید این فایل را توسط Node.js اجرا کنیم.

در مورد use strict

Strict Mode لغتاً به معنای حالت سخت‌گیرانه است و مکانیزمی است که توسعه‌دهندگان جاوااسکریپت برای حل برخی مشکلات مربوط به نسخه‌های ابتدایی استاندارد ES و در عین حال، حفظ سازگاری ارائه داده‌اند. با پیشرفت و توسعه‌ی ES نیاز به اصلاح برخی مشکلات و ویژگی‌های بحث‌برانگیز در نسخه‌های ابتدایی این زبان احساس می‌شد. اما این اصلاحات باید به‌گونه‌ای باشد که مشکلی برای کدهایی که با رویکرد قبلی نوشته شده‌اند، به بار نیاورد و اصطلاحاً Backward Compatibility را حفظ کند. به همین دلیل، مکانیزم use strict طراحی شد. قرار دادن عبارت 'use strict' در بالای یک فایل جاوااسکریپت، باعث می‌شود که مفسر جاوااسکریپت کدهای آن فایل را در حالت سخت‌گیرانه یا Strict Mode تفسیر کند. در غیاب دایرکتیو use strict کدها در Legacy Mode تفسیر می‌شوند که مطابق با نسخه‌های قدیمی استاندارد ES است. فارغ از اینکه عبارت use strict را در بالای کدهای مثال‌های این دوره ببینید یا نه، شما حتماً این کار را انجام دهید تا به کدنویسی در حالت سخت‌گیرانه عادت کنید. در حالت سخت‌گیرانه، مفسر اجازه‌ی انجام برخی از کارها را نداده و آنها را خطا محسوب می‌کند. برای مثال، در legacy mode امکان ایجاد متغیرهای global وجود دارد. در جاوااسکریپت، متغیری که بدون استفاده از کلمات کلیدی let، const یا var ایجاد شود، یک متغیر global است که در همه‌جای برنامه در دسترس است. در حالت سخت‌گیرانه امکان تعریف این متغیرها وجود ندارد.

اجرای فایل‌های جاوااسکریپت با Node.js

همانطور که در درس قبلی دیدیم، محیط Node.js REPL برای اهداف آزمایشی یک ابزار بسیار مفید است و توسعه‌دهندگان در محیط توسعه از آن استفاده می‌کنند. برنامه‌ی ساده‌ی بالا را ابتدا در محیط REPL و سپس در vscode اجرا می‌کنیم.

در محیط REPL می‌توانیم دستورات جاوااسکریپت را مستقیماً وارد کنیم و نتیجه‌ی هر دستور را طی یک روند تعاملی دریافت کنیم. یادآوری می‌کنم که برای این کار باید عبارت node را در ترمینال وارد کنیم تا مفسر Node.js کنترل ترمینال را در اختیار بگیرد. اما این امکان هم وجود دارد که آدرس یک فایل را به عنوان آرگومان به دستور node بدهیم تا آن فایل را تفسیر و اجرا کند.

برای اجرای برنامه‌ی ساده‌ی بالا، یک ترمینال باز کنید، با استفاده از دستور cd به محل ذخیره‌ی فایل greeting.js بروید و دستور node greeting.js را اجرا کنید.

$ node greeting.js
Hello, world!

به این ترتیب، پیغام Hello, world! در ترمینال نمایش داده می‌شود. اما همانطور که قبلاً هم گفتیم، محیط REPL فقط برای اهداف آزمایشی و برخی مثال‌ها مناسب است و در پروژه‌های عملی ما به یک ویرایشگر کد یا یک IDE مثل vscode نیاز داریم.

برای اجرای مثال بالا در محیط vscode از منوی File و گزینه‌ی Open Folder (یا به هر روش دیگری که می‌خواهید) دایرکتوری حاوی فایل greeting.js را در محیط vscode باز می‌کنیم. سپس، از منوی View گزینه‌ی Terminal را انتخاب می‌کنیم تا پنل ترمینال در vscode باز شود. حالا عبارت node greeting.js را وارد می‌کنیم تا برنامه اجرا شود. به این ترتیب، از ترمینال داخلی vscode استفاده کرده و بدون خروج از محیط ویرایشگر، کدها را اجرا کرده‌ایم.