دستور زبان جاوا اسکریپت
همانطور که میدانید هر زبانی که انسانها به آن صحبت میکنند (مانند فارسی یا انگلیسی)، دارای قوانین و قواعدی است. برای بیان صحیح مفاهیم با این زبانها باید از قوانین آنها پیروی کرد. این قوانین را اصطلاحاً "دستور زبان" یا "گرامر (Grammar)" مینامند.
در زبانهای برنامهنویسی نیز چنین قوانین و قواعدی وجود دارد که اصطلاحاً Syntax نامیده میشوند (البته اینجا نیز از اصطلاح "دستور زبان" یا "گرامر" استفاده میشود). یک تفاوت مهم بین قوانین زبانهای برنامهنویسی و زبانهای انسانی، دقیق بودن قواعد زبانهای برنامهنویسی است. به این معنی که کوچکترین تخطی از این قوانین موجب بروز خطا شده و دستورات را یا کلاً بی معنی میکند و یا معنی آن را تغییر میدهد. در صورتی که در زبانهای انسانی بعضاً جا به جایی چند کلمه هم باعث تغییر معنی نمیشود و حداقل میتوان گفت که شنونده منظور شما را متوجه خواهد شد. بنابراین باید دقت زیادی در استفاده از این قواعد به کار ببندید تا اشتباهات را به حداقل برسانید. (البته به صفر رساندن خطاهای برنامهنویسی تقریباً غیر ممکن است. پس اگر در مواردی دچار اشتباه شدید، اصلاً نا امید نشوید)
خوشبختانه بیشتر زبانهای برنامهنویسی امروزی دارای گرامری نسبتاً ساده، و تا حد زیادی مشابه هستند. چرا که Syntax بیشتر زبانهای برنامهنویسی از زبان C اقتباس شده است که گرامری نسبتاً ساده دارد. چنین زبانهایی را اصطلاحاً C-Style یا C-like مینامند که بیشتر زبانهای مشهور امروزی جزء این دسته از زبانها هستند. از این دست زبانها میتوان به JavaScript، Java، C++، C#، PHP و ... اشاره کرد. در واقع اگر شما گرامر یکی از این زبانها را یاد بگیرید، یادگیری گرامر بقیهی زبانها کار بسیار سادهای خواهد بود. چرا که بیش از ۸۰ درصد قواعد اصلی و پایهای بین این زبانها مشترک است. اما در این بخش ما صرفاً به بررسی گرامر یا Syntax زبان JavaScript میپردازیم.
یک برنامهی جاوا اسکریپت از دنبالهای از دستورات (Statements) تشکیل شده است که هر دستور با یک کاراکتر "خط جدید (کلید Enter)" یا کاراکتر ";" به پایان میرسد. به عنوان مثال در قطعه کد زیر دو دستور را مشاهده میکنید که با خط جدید به پایان رسیدهاند.
let message = 'Hello World!'
alert(message)
در صورتی که از کاراکتر ";" در انتهای یک دستور استفاده کنید، میتوانید دستور بعدی را نیز در همان خط قرار دهید. به عنوان مثال، قطعه کد فوق را به شکل زیر هم میتوان نوشت.
let message = 'Hello World!'; alert(message);
با اینکه هر دو قطعه کد فوق از نظر دستوری صحیح هستند و عملکرد کاملاً یکسانی نیز دارند. اما اکیداً توصیه میشود که از روشهای فوق در کدنویسی جاوا اسکریپت استفاده نکنید. چرا که خوانایی برنامه را کاهش داده و احتمال بروز خطا را افزایش میدهد. روش مرسوم و بهینه، استفاده از ";" و خط جدید در انتهای هر دستور است. یعنی معادل دو قطعه کد فوق به شکل بهینه و خوانا به صورت زیر خواهد بود.
let message = 'Hello World!';
alert(message);
توجه کنید که فاصلهها، خطوط خالی و فضاهای خالی در ابتدا و انتهای خطوط هیچ تاثیری در معنی کدها ندارند و صرفاً جهت خوانایی و زیبایی کدها به کار برده میشوند. مثلاً با اضافه کردن تعدادی فضای خالی، فاصله و خطوط خالی (همچنین توضیحات) به کد فوق، میتوان کد زیر را ایجاد کرد که از نظر معنی، هیچ تفاوتی با کد فوق ندارد و نتیجهی اجرای هر دو یکسان است.
// this is a simple comment
let message ='Hello World!';
alert(message );
البته باید توجه داشته باشید که فضاهای خالی در رشتهها بی معنی نیستند و باید داخل رشتهها به اندازهی مورد نیاز از فضاهای خالی استفاده کرد. (در مورد رشتهها در همین فصل صحبت خواهیم کرد. فعلاً همین را بدانید که در قطعه کد فوق، عبارت "Hello World!" یک رشته است.)