بیاموزید که چگونه بر متغیرها تسلط پیدا کنید، حوزه های ویژه نگهداری اطلاعات که برای یک زبان برنامه نویسی بسیار مهم هستند
زبان های برنامه نویسی بدون متغیر تقریباً بی فایده هستند. این مناطق ویژه نگهداری اطلاعات می توانند اعداد، رشته های متنی، اشیاء و انواع داده های دیگر را ذخیره کنند. پس از ذخیره شدن، این اطلاعات می تواند بعداً در برنامه شما استفاده شود. با یک متغیر، نام یک شخص را می توان در نقطه ای از اسکریپت ذخیره و استفاده کرد.
متغیرها دارندگان موقت اطلاعات هستند. آنها می توانند:
را نگه دارند
- مقادیر عددی (“اعداد”) — اعدادی که می توانند با هم جمع شوند. مثال: ۲+۲ منجر به ۴
- رشته نویسه می شود — مجموعه ای از متن، مانند “JavaScript” یا “My name is Mudd”
- مقادیر True/false — درست و نادرست بولی
- اشیاء — جاوا اسکریپت یا اشیاء تعریف شده توسط کاربر (متغیرهای جاوا اسکریپت می توانند چند نوع داده دیگر را در خود نگه دارند، اما اینها بسیار رایج ترین انواع هستند)
(توجه: مانند بسیاری از زبانهای برنامهنویسی مدرن، جاوا اسکریپت از متغیرهای آرایه علاوه بر متغیرهای اسکالر اصلی که برای نگهداری انواع دادههای بالا استفاده میشوند، پشتیبانی میکند. ما بر روی متغیرهای تک مقداری برای این ستون تمرکز میکنیم و یک ستون جداگانه را به آن اختصاص میدهیم. آرایه ها.)
متغیرهای جاوا اسکریپت متعلق به سند اسکریپتی هستند که آنها را ایجاد کرده است. هنگامی که سند تخلیه می شود، متغیرها از بین می روند. علاوه بر این، زمانی که یک متغیر به آن مقدار جدیدی اختصاص می دهید، محتویات آن پاک می شود. اگرچه یک متغیر ایجاد شده در یک اسکریپت سند معمولاً توسط اسکریپت سند دیگر دیده نمی شود، جاوا اسکریپت راه هایی برای اشتراک گذاری متغیرها بین اسکریپت ها ارائه می دهد. این کار را با ارجاع به نام سند به همراه نام متغیر انجام می دهید.
چندین دستورالعمل جاوا اسکریپت متغیرها را ایجاد و ذخیره می کنند، اما راه اصلی برای انجام این کار به صورت دستی با عملگر انتساب برابر (=) است. نحو اصلی این است:
VariableName = value
آگومان اول نام متغیر است. نام متغیرها می تواند بسیار طولانی باشد، اما شما در کاراکترهایی که ممکن است استفاده کنید محدود هستید. برای اطلاعات بیشتر در مورد نام متغیرهای معتبر، به بخش محدودیت نام متغیر مراجعه کنید.
آگومان دوم محتویات متغیر است. میتوانید انواع چیزها را در یک متغیر قرار دهید، از جمله یک عدد، یک رشته، یک عبارت ریاضی (مانند ۲+۲)، و چیزهای مختلف دیگری که در مدت کوتاهی به آنها خواهیم رسید.
کاربران پاسکال ممکن است وسوسه شوند که تخصیص متغیر را با استفاده از := بسازند. توجه داشته باشید که این نحو در جاوا اسکریپت پشتیبانی نمی شود.
در زیر خلاصهای مشخصتر از چهار محتوای متداول که میتوانید در متغیرهای جاوا اسکریپت قرار دهید، شامل مثالهایی است.
محتوای موجود در متغیرهای جاوا اسکریپت
اعداد در متغیرها
عدد یک یا چند رقم است که در رایانه ذخیره می شود به گونه ای که جاوا اسکریپت بتواند محاسبات ریاضی را با آنها انجام دهد. جاوا اسکریپت هم از اعداد صحیح و هم مقادیر ممیز شناور پشتیبانی می کند. برای قرار دادن یک عدد در یک متغیر، فقط نام متغیر، علامت تساوی (عملگر انتساب متغیر) و مقداری که می خواهید استفاده کنید را وارد کنید. به عنوان مثال، برای قرار دادن عدد ۱۰ در متغیری به نام MyVar، کارهای زیر انجام می شود:
MyVar = 10;
رشته ها در متغیرها
یک رشته یک یا چند کاراکتر متنی است که در حافظه در یک فایل مرتب شده اند. رشته ها می توانند شامل اعداد (اعداد)، حروف، علائم نگارشی یا ترکیبی از این عناصر باشند. محاسبات ریاضی را نمی توان روی رشته ها انجام داد. رشته ها به متغیرهای جاوا اسکریپت با محصور شدن در مجموعه ای از گیومه های تک یا دوتایی تخصیص داده می شوند:
"I am a string"
یا
'I am a string'
توجه داشته باشید که نقل قول های دوتایی یا تکی قابل قبول هستند. برخلاف برخی از زبانها، مانند پرل، جاوا اسکریپت هیچ تمایزی بین دو شکل گیومه قائل نمیشود. این مثال کاری نحوه قرار دادن یک رشته را در یک متغیر نشان می دهد:
MyVar = "This is JavaScript";
مقادیر بولی در متغیرها
دو مقدار بولی وجود دارد: true و false. برخی از زبان های برنامه نویسی مجموعه جداگانه ای از مقادیر بولی ندارند و در عوض از ۰ برای false و ۱ یا -۱ (یا هر مقدار غیر صفر دیگری) برای true استفاده می کنند. جاوا اسکریپت می تواند از این اعداد برای نشان دادن true و false استفاده کند، اما علاوه بر این، کلمات “true” و “false” را به معنای درست و نادرست بولی ذخیره می کند. شما می توانید مقادیر درست و نادرست بولی را معادل روشن/خاموش یا بله/خیر در نظر بگیرید. برای اختصاص یک مقدار بولی به یک متغیر، فقط کلمه true یا false را بدون نقل قول ارائه کنید. این یک مثال است:
MyVar = true;
اشیاء در متغیرها
متغیرها می توانند شامل اشیایی از جمله اشیاء جاوا اسکریپت باشند. اساساً دو نوع متغیر شی وجود دارد:
-
متغیرهایی که حاوی اشیاء داخلی مرتبط با مرورگر هستند – پنجره، سند، ناوبر و غیره – در واقع ارجاعاتی به شی اصلی هستند. آنها مانند کپی هستند، اما اگر نسخه اصلی تغییر کند، کپی ها تغییر می کنند. در برخی موارد، ایجاد تغییر در شیء در متغیر، شیء اصلی جاوا اسکریپت را تحت تأثیر قرار می دهد.
- متغیرهایی که حاوی اشیاء تعریف شده توسط کاربر هستند، شی واقعی را نشان می دهند. تغییری در شیء موجود در متغیر ایجاد کنید و فقط آن شی را تغییر دهید.
متغیرهایی که حاوی اشیاء داخلی مرتبط با مرورگر هستند – پنجره، سند، ناوبر، و غیره – در واقع ارجاعاتی به شی اصلی هستند. آنها مانند کپی هستند، اما اگر نسخه اصلی تغییر کند، کپی ها تغییر می کنند. در برخی موارد، ایجاد تغییر در شیء موجود در متغیر، شیء اصلی جاوا اسکریپت را تحت تأثیر قرار می دهد.
برای اختصاص دادن یک شی جاوا اسکریپت به یک متغیر، نام شی را مانند زیر ارائه کنید:
MyVar = navigator;
برای اختصاص یک کپی جدید از یک شی تعریف شده توسط کاربر به یک متغیر، از دستور جدید استفاده کنید و نام تابع شی را ارائه دهید:
MyVar = new myObject();
وقتی نوبت به نام هایی می رسد که می توانید متغیرها را انتخاب کنید، جاوا اسکریپت عرض جغرافیایی زیادی را ارائه می دهد. طول متغیرهای جاوا اسکریپت تقریباً نامحدود است، اگرچه به دلایل عملی احتمالاً نام متغیرهای خود را کمتر از ۱۰ یا ۱۵ کاراکتر نگه دارید. نام متغیرهای کوتاهتر به جاوا اسکریپت کمک می کند تا برنامه را سریعتر اجرا کند. هنگام نامگذاری متغیرهای خود موارد زیر را در نظر داشته باشید:
-
نام متغیرها باید فقط از حروف تشکیل شده باشد — بدون فاصله. تا زمانی که نام با یک رقم شروع نشود می توانید از اعداد استفاده کنید. به عنوان مثال، MyVar1 قابل قبول است، اما ۱MyVar قابل قبول نیست.
-
از کاراکترهای نقطه گذاری در نام متغیرها استفاده نکنید. استثنا: کاراکتر زیر خط (_). یعنی متغیر My_Var قابل قبول است اما My*Var قابل قبول نیست. متغیرها می توانند با نویسه زیرخط شروع شوند.
- نام متغیرها به حروف بزرگ و کوچک حساس هستند. متغیر MyVar یک متغیر کاملاً متفاوت از myVar، myvar و سایر تغییرات است.
نام متغیرها باید فقط از حروف تشکیل شده باشد — بدون فاصله. تا زمانی که نام با یک رقم شروع نشود می توانید از اعداد استفاده کنید. به عنوان مثال، MyVar1 قابل قبول است، اما ۱MyVar قابل قبول نیست.
از کاراکترهای نقطه گذاری در نام متغیرها استفاده نکنید. استثنا: کاراکتر زیر خط (_). یعنی متغیر My_Var قابل قبول است اما My*Var قابل قبول نیست. متغیرها می توانند با نویسه زیرخط شروع شوند.
آشنایی با انواع داده های متغیر جاوا اسکریپت
بر خلاف برخی از زبان های برنامه نویسی دیگر، در جاوا اسکریپت نیازی به تعریف صریح نوع متغیری که می خواهید ایجاد کنید وجود ندارد. این رفتار جاوا اسکریپت “تایپ داده شل” نامیده می شود و با C و جاوا متفاوت است که هر دو از تایپ داده سختگیرانه استفاده می کنند.
در جاوا اسکریپت نیازی به تفکیک انواع متغیرها با اضافه کردن کاراکترهای خاص به انتهای نام متغیر نیست، مانند MyVar$ برای یک متغیر رشته (یا، برای آن، $MyVar برای یک متغیر اسکالر، a la Perl ). جاوا اسکریپت به صورت داخلی نوع متغیر را بر اساس محتوای آن رمزگشایی می کند.
استفاده از عبارت var برای اختصاص یک متغیر
جاوا اسکریپت از عبارت var پشتیبانی می کند که می تواند برای تعریف صریح یک متغیر استفاده شود. نحو صرفاً عبارت var، یک فاصله و همان عبارت تخصیص متغیر است که در بالا توضیح داده شد. به عنوان مثال:
var MyVar = "This is a variable";
همچنین میتوانید از عبارت var با نام متغیر برای اعلام متغیر استفاده کنید اما مقداری برای آن تعریف نکنید:
var MyVar;
در این مورد، شما MyVar را در حافظه تعریف کرده اید اما هنوز مقداری به آن اختصاص نداده اید. این تکنیک اغلب هنگام تنظیم متغیرهای سراسری استفاده می شود – متغیرهایی که می توانند آزادانه در هر نقطه از اسکریپت شما به اشتراک گذاشته شوند. برای اطلاعات بیشتر در مورد متغیرهای کلی، به بخش “درک دامنه متغیرها”، در زیر مراجعه کنید.
محدودیت طول رشته
جاوا اسکریپت محدودیت ۲۵۴ کاراکتر را برای هر انتساب متغیر رشته ای در برنامه شما اعمال می کند. اگر از محدودیت ۲۵۴ نویسه عبور کنید، جاوا اسکریپت با یک پیام خطای “رشتهای نامحدود” پاسخ میدهد. (توجه: اساساً این محدودیت جاوا اسکریپت در Netscape 2.0x است؛ بهتر است آن را رعایت کنید زیرا همه کاربران Netscape 3.0 را قبول نکرده اند.)
میتوانید رشتههای طولانیتری را با «تکهکردن» آنها در کنار هم ایجاد کنید – تا زمانی که هر قطعه ۲۵۴ کاراکتر یا کمتر داشته باشد. پس از اختصاص یک رشته به هر متغیر، آنها را با استفاده از کاراکتر + ترکیب می کنید. به این «الحاق» می گویند. مثال زیر نحوه کار الحاق را نشان می دهد:
MyVar = "This is the start " + of how you " + " can build strings";
هر بخش رشته منفرد — که با متن درون گیومه ها تعریف می شود — می تواند حداکثر ۲۵۴ کاراکتر باشد. برای ایجاد رشته ای بیشتر از ۲۵۴ کاراکتر، فقط بخش های بیشتری را اضافه کنید. روش دیگر ساخت رشته ها با استفاده از عملگر += انتساب است، مانند:
MyVar = "This is the start " MyVar += "of how you " MyVar + = can build strings "
تا زمانی که رایانه شما حافظه لازم را داشته باشد، میتوانید به این روش به هم پیوستن رشتهها ادامه دهید. اما، در حالی که جاوا اسکریپت میتواند رشتههایی بزرگتر از آنچه در بسیاری از زبانهای برنامهنویسی دیگر ممکن است نگه دارد (مانند ۶۴K معمولی Basic)، انجام این کار میتواند به شدت عملکرد سیستم را کاهش دهد. بدیهی است که شما متغیرهای رشته ای بزرگ زیادی ایجاد نخواهید کرد. خوب است بدانید که در صورت نیاز، یک متغیر جاوا اسکریپت می تواند متن بسیار زیادی را در خود جای دهد.
درک “حوزه” متغیرها
“حوزه یک متغیر” ربطی به اپتیک یا دهانشویه ندارد، بلکه به میزان قابل مشاهده بودن یک متغیر برای سایر بخشهای یک برنامه جاوا اسکریپت مربوط میشود. مگر اینکه دستورالعملهای صریحی برای گفتن جاوا اسکریپت ارائه دهید، دامنه متغیرهای آن به صورت زیر مدیریت میشود:
-
متغیرهای تعریف شده خارج از یک تابع برای هر تابعی در اسکریپت در دسترس هستند، تا زمانی که همه متغیرها در اسکریپت همان سند HTML تعریف شده باشند. اینها به عنوان متغیرهای سراسری نامیده می شوند.
-
متغیرهای تعریف شده در داخل یک تابع نیز سراسری هستند، با این فرض که عبارت var در اولین اعلان آن متغیر استفاده نمی شود. یعنی MyVar = “hello.”
-
متغیرهای تعریف شده در داخل یک تابع با عبارت var فقط برای آن تابع “محلی” هستند. اینها به عنوان متغیرهای محلی نامیده می شوند.
- متغیرهای جهانی حتی پس از توقف اجرای اسکریپت در حافظه باقی می مانند. متغیر تا زمانی که سند تخلیه نشود در حافظه باقی می ماند.
متغیرهای تعریف شده خارج از یک تابع برای هر تابعی در اسکریپت در دسترس هستند، تا زمانی که همه متغیرها در اسکریپت همان سند HTML تعریف شده باشند. اینها به عنوان متغیرهای سراسری نامیده می شوند.
متغیرهای تعریف شده در داخل یک تابع نیز سراسری هستند، با این فرض که عبارت var در اولین اعلان آن متغیر استفاده نمی شود. یعنی MyVar = “سلام.”
متغیرهای تعریف شده در داخل یک تابع با عبارت var فقط برای آن تابع “محلی” هستند. اینها به عنوان متغیرهای محلی نامیده می شوند.
با متغیرهای محلی طوری رفتار میشود که انگار خارج از تابعی که در آن تعریف شدهاند وجود ندارند. به این ترتیب، میتوانید از نام متغیر یکسانی در داخل یک تابع استفاده کنید، و آن متغیر در جای دیگری از اسکریپت با متغیر همنام تداخلی نخواهد داشت.
در زیر مثالی است که این را نشان می دهد. وقتی روی دکمه کلیک می کنید، اسکریپت سه جعبه هشدار را نمایش می دهد. جزئیات زیر با کلیک کردن روی دکمه چه اتفاقی میافتد:
-
جاوا اسکریپت firstFunction را فراخوانی می کند که مقدار ۱ را به یک متغیر محلی به نام MyVar اختصاص می دهد. محتویات MyVar نمایش داده می شود.
-
جاوا اسکریپت secondFunction را فراخوانی می کند که مقدار ۲ را به یک متغیر محلی اختصاص می دهد که MyVar نیز نامیده می شود. محتویات MyVar نمایش داده می شود.
- جاوا اسکریپت به firstFunction باز می گردد، جایی که محتویات MyVar دوباره نمایش داده می شود. نتیجه ۱ است که مقدار MyVar local به firstFunction است.
جاوا اسکریپت firstFunction را فراخوانی می کند که مقدار ۱ را به یک متغیر محلی به نام MyVar اختصاص می دهد. محتویات MyVar نمایش داده می شود.
جاوا اسکریپت secondFunction را فراخوانی می کند، که مقدار ۲ را به یک متغیر محلی، که MyVar نیز نامیده می شود، اختصاص می دهد. محتویات MyVar نمایش داده می شود.
ارجاع به متغیرها در سایر اسناد بارگذاری شده
هنگام استفاده از فریمها، اغلب لازم است متغیرها را در اسناد به اشتراک بگذارید. ممکن است یک یا چند فریم به متغیری نیاز داشته باشد که در فریم دیگری وجود دارد. بر اساس ماهیت خود، متغیرها (حتی جهانی) خارج از سندی که آنها را ایجاد کرده است قابل مشاهده نیستند. بنابراین، هنگامی که می خواهید به یک متغیر در سند دیگری ارجاع دهید – و با فرض اینکه آن سند در مرورگر بارگذاری شده است – باید به طور صریح به آن متغیر با اضافه کردن نام پنجره در مقابل نام متغیر اشاره کنید. در اینجا نحو است:
winname.varname
که در آن winname
نام سند است و varname
نام متغیر است. اطلاعات بیشتر در مورد نام اسناد در یک بیت.
می توانید با استفاده از تکنیک زیر متغیرها را اختصاص دهید و به آنها ارجاع دهید. برای مثال، این متغیر MyVar را در پنجره mydoc روی ۱:
تنظیم می کند
mydoc.MyVar = 1;
کد زیر مقدار یک متغیر MyVar محلی را در پنجره mydoc اختصاص میدهد.
VarInThisDoc = mydoc.MyVar;
نام ویندوزها از کجا آمده است؟ همه چیز به نحوه استفاده از ویندوز بستگی دارد.
برای استفاده از یک متغیر در پنجره اصلی مرورگر از پنجرهای که ایجاد کردهاید، ابتدا با استفاده از این روش، یک “پیوند” به شی پنجره والد ارائه دهید:
newwindow = window.open ("","NewWindow"); //repeat this for Mac/X Netscape 2.0 newwindow.creator = self;
سپس، در این پنجره جدید می توانید با استفاده از نحو به هر متغیری در پنجره اصلی مراجعه کنید:
creator.MyVar;
برای استفاده از یک متغیر در پنجره ای که ایجاد کرده اید، با استفاده از نام شی ای که هنگام ایجاد پنجره ارائه کرده اید به آن مراجعه کنید. به عنوان مثال، از newwindow برای پنجره ای که با موارد زیر ایجاد شده است استفاده کنید:
newwindow = window.open ("","NewWindow");
اکنون با استفاده از نحو:
به آن متغیر مراجعه کنید
newwindow.MyVar;
برای استفاده از یک متغیر تعریف شده در مجموعه فریم — یعنی سند حاوی
برچسب — به آن به عنوان والد اشاره کنید. این یک مثال است:
parent.MyVar;
برای استفاده از یک متغیر در یک سند فریم دیگر، با استفاده از نام فریمی که در
ارائه کرده اید به آن مراجعه کنید.
این داستان، “استفاده از متغیرهای تعریف شده توسط کاربر در جاوا اسکریپت” در ابتدا توسط
پست های مرتبط
از متغیرهای تعریف شده توسط کاربر در جاوا اسکریپت استفاده کنید
از متغیرهای تعریف شده توسط کاربر در جاوا اسکریپت استفاده کنید
از متغیرهای تعریف شده توسط کاربر در جاوا اسکریپت استفاده کنید