متغیرهای ECMAScript

موصیه‌های درسی:

لطفاً از علامت محاسباتی var برای تعریف متغیر استفاده کنید.

نام متغیرها باید قوانین ساده‌ای را رعایت کنند.

تعریف متغیر

var test = "hi";

در بخش قبلی، ما درباره متغیرها در ECMAScript با استفاده از علامت محاسباتی var (کوتاه شده از variable) و نام متغیر بحث کردیم. به عنوان مثال:نوع ضعیفبنابراین، برنامه‌های تفسیری برای test یک مقدار رشته‌ای خودکار ایجاد می‌کنند،لازم به اعلام نوع مشخص نیست،

همچنین می‌توان دو یا چند متغیر را با یک عبارت var تعریف کرد:

var test1 = "hi", test2 = "hello";

کد قبلی متغیر test1 را با مقدار اولیه "hi" تعریف کرده و همچنین متغیر test2 را با مقدار اولیه "hello" تعریف کرده است.

امامتغیرهایی که با یک عبارت var مشابه تعریف می‌شوند، نباید دارای نوع مشابهی باشند، مانند این:

var test = "hi", age = 25;

این مثال علاوه بر تعریف مجدد test، age را نیز تعریف کرده و آن را به 25 تنظیم کرده است. حتی اگر test و age به دو نوع مختلف داده شوند، در ECMAScript این تعریف کاملاً قانونی است.

برخلاف Java، متغیرها در ECMAScriptنیازی به تعریف اولیه نیست(آنها در پشت صحنه به صورت خودکار تعریف می‌شوند که در بخش بعدی بحث خواهد شد). بنابراین، این خط کد نیز معتبر است:

var test;

به عنوان مثال، متغیرها در Java متفاوت هستندمقدارهای مختلف را می‌توان نگه داشتاین ویژگی برتری نوع ضعیف است. به عنوان مثال، می‌توانید یک متغیر را به عنوان یک مقدار رشته‌ای تعریف کنید و سپس آن را به عنوان یک مقدار عددی تنظیم کنید، مانند:

var test = "hi";
alert(test);
test = 55;
alert(test);

این کد بدون هیچ مشکلی مقادیر رشته و عددی را نمایش می‌دهد. اما، مانند آنچه قبلاً ذکر شد، هنگام استفاده از متغیرها، عادت خوب کدنویسی این است که همیشه مقادیر یک نوع مشابه را ذخیره کنید.

نام‌گذاری متغیر

نام متغیرها باید دو قاعده ساده را رعایت کنند:

  • اولین کاراکتر باید حرف، خط تیره (_ ) یا علامت دلار ($) باشد
  • کاراکترهای باقی‌مانده می‌توانند خط تیره، علامت دلار یا هر حرف یا عدد باشند

در اینجا همه متغیرها قانونی هستند:

var test;
var $test;
var $1;
var _$te$t2;

قوانین معروف نام‌گذاری متغیر

فقط به این دلیل که قواعد گرامری نام متغیر صحیح است، این به معنای استفاده از آنها نیست. نام متغیرها باید یکی از قوانین معروف نام‌گذاری را رعایت کنند:

نشانه‌گذاری Camel

حرف اول کوچک است و تمام حروف بعدی بزرگ هستند. به عنوان مثال:

var myTestValue = 0, mySecondValue = "hi";

نشانه‌گذاری Pascal

حرف اول بزرگ است و تمام حروف بعدی بزرگ هستند. به عنوان مثال:

var MyTestValue = 0, MySecondValue = "hi";

نشانه‌گذاری نوع هنگاری

یک حرف کوچک (یا توالی حروف کوچک) به متغیرهایی که با روش نشانه‌گذاری Pascal نامگذاری شده‌اند اضافه کنید تا نوع متغیر را نشان دهید. به عنوان مثال، i برای عددی، s برای رشته، به عنوان مثال:

var iMyTestValue = 0, sMySecondValue = "hi";

این آموزش از این پیشوندها استفاده می‌کند تا کد مثال‌ها را قابل خواندن‌تر کند:

نوع پیشوند مثال
آرایه a aValues
نوع بولین b bFound
نوع عددی اعشاری (اعداد) f fValue
توابع fn fnMethod
نوع عددی (اعداد) i iValue
مجموعه o oType
عبارت‌های منظم re rePattern
رشته s sValue
نوع متغیر (می‌تواند هر نوعی باشد) v vValue

اعلام متغیر الزامی نیست

یک جنبه جالب دیگر ECMAScript (و یکی از تفاوت‌های اصلی با اکثر زبان‌های برنامه‌نویسی)، این است که نیازی به اعلام متغیرها قبل از استفاده از آن‌ها نیست. به عنوان مثال:

var sTest = "hello ";
sTest2 = sTest + "world";
alert(sTest2);

در کد بالا، ابتدا، sTest به عنوان یک مقدار نوع رشته "hello" اعلام شده است. در خط بعدی، sTest با رشته "world" با استفاده از متغیر sTest2 ترکیب می‌شود. متغیر sTest2 با استفاده از عملگر var تعریف نشده است، بلکه به صورت مستقیم درج شده است، جوری که انگار قبلاً اعلام شده است.

برنامه‌های تفسیری ECMAScript هنگام برخورد با شناسه‌ای که قبلاً تعریف نشده است، یک متغیر با نام متغیر ایجاد می‌کنند و آن را به مقدار مشخص شده اولیه‌سازی می‌کنند.

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