قوانین زبان ECMAScript

برنامه‌نویسان آشنا با زبان‌هایی مانند Java، C و Perl خواهند دید که گرامر ECMAScript به راحتی قابل فهم است، زیرا از گرامر این زبان‌ها استفاده می‌کند.

Java و ECMAScript برخی ویژگی‌های کلیدی گویایی مشترک دارند و برخی نیز کاملاً متفاوت هستند.

حساسیت به بزرگ‌کوچک‌نویسی وجود دارد

مانند Java، متغیرها، نام‌های تابع، علامت‌ها و همه چیز دیگری در ECMAScript بزرگ‌کوچک‌نویسی حساس هستند.

مثال:

متغیر test با متغیر TEST متفاوت است.

متغیرها نوع ضعیف دارند

برخلاف Java و C، متغیرها در ECMAScript نوع خاصی ندارند و فقط با استفاده از علامت var تعریف می‌شوند و می‌توان آن را به هر مقدار اولیه‌ای اختصاص داد.

بنابراین، می‌توان در هر زمان نوع داده‌ای که داده در یک متغیر ذخیره می‌شود را تغییر داد (بهترین حالت این است که از این کار خودداری کنید).

مثال:

var color = "red";
var num = 25;
var visible = true;

نقطه و逗ه در انتهای هر خط نیاز ندارد

Java، C و Perl نیاز به پایان هر خط کد با نقطه و逗ه (;) دارند تا از نظر گرامری صحیح باشند.

ECMAScript به توسعه‌دهندگان اجازه می‌دهد که خودشان تصمیم بگیرند آیا یک خط کد با نقطه و逗ه پایان می‌یابد یا خیر. اگر نقطه و逗ه نباشد، ECMAScript انتهای خط برش را به عنوان انتهای دستور در نظر می‌گیرد (مثل Visual Basic و VBScript)، به شرطی که این کار باعث خرابی معنای کد نشود.

بهترین عادت نوشتن کد، اضافه کردن همیشه نقطه و逗ه است، زیرا بدون آن، برخی از مرورگرها نمی‌توانند به درستی اجرا شوند، اما بر اساس استاندارد ECMAScript، دو خط زیر به درستی هستند:

var test1 = "red"
var test2 = "blue";

نظرات با زبان‌های Java، C و PHP مشابه هستند

ECMAScript از دستورالعمل‌های نظرات این زبان‌ها استفاده کرده است.

دو نوع نظرات وجود دارد:

  • نظرات خطی با دو خط تیره (//) شروع می‌شوند
  • نظرات چند خطی با یک خط تیره و یک ستاره (/*) شروع می‌شوند و با یک ستاره و یک خط تیره (*/) پایان می‌یابند
//this is a single-line comment
/*this is a multi-
comment line */

گوشه‌ها بلاک کد را نشان می‌دهند

یک مفهوم دیگر که از زبان Java گرفته شده است، بلاک کد است.

بلاک کد یک سری از دستورات است که باید به ترتیب اجرا شوند و در بین دو گوشه باز و بسته ({}) محصور شده‌اند.

مثال:

if (test1 == "red") {
    test1 = "blue";
    alert(test1);
}