وبلاگ تخصصی کامپیوتر

***آموزش*برنامه نویسی*هک*گرافیک*انواع نرم افزار*سرگرمی***

وبلاگ تخصصی کامپیوتر

***آموزش*برنامه نویسی*هک*گرافیک*انواع نرم افزار*سرگرمی***

آموزش Java Script

برنامه نویسی جاوا ترفداران زیادی دارد. میخام تو این پست آموزش جاوا رو براتون بذارم امیدوارم خوشتون بیاد.

پیشنهاد میکنم که اوی رو تو ورد کپی کنید بعد بخونید...ا اطمینان کامل می توان گفت « بیش از نیمی از کسانی که با دنیای اینترنت در ارتباط هستند حداقل یک بار اسم Java Script را شنیده اند » ولی با دیدن یک برنامه ساده که توسط زبان Java Script نوشته شده , دیگر حتی حاضر نشده اند حتی یک بار دیگر اسم آن را بشنوند !!! Java Script در ابتدا بسیار سخت و حتی عذاب آور! به نظر میرسد , ولی اصلاً اینطور نیست . فقط کمی تلاش و کوشش می تواند شما را در آموختن این زبان بسیار زیبا کمک کند . در ابتدا می خواهم مقدمه ای درباره Java Script بنویسم که بسیاری از مسائل مربوط به آن را آشکارتر کند , و مسائلی در مورد آن را بررسی کنیم تا ذهنیت های اشتباه در مورد Java Script را از بین ببرد .

در این مقدمه یکسری موارد پایه در مورد زبان برنامه نویسی Java Script مورد بحث قرار می دهیم که دانستن انها برای درک بقیه مفاهیم آن الزامیست . مشکلات و موارد مبهم را در قسمت Java Script تالار گفتگوی سایت مطرح کنید تا این مشکلات را رفع کنیم . در این سری آموزش ها سعی خواهم کرد که دروس ومطالب را به صورت طبقه بندی شده و همراه با سادگی بیان و ذکر تمام جزئیات و مفاهیم ارائه کنم تا برای خوانندگان - با هر سطح معلومات - قابل استفاده باشد .

برای آموختن Java Script حتما باید یکسری اطلاعات اولیه و در واقع پیش نیاز در زمینه زبان HTML داشته باشید در میان هر درس , در صورت نیاز مواردی از HTML را ذکر خواهم کرد که در آموختن Java Script مفید خواهند بود .

بسیاری زبان برنامه نویسی Java Script را با زبان JAVA اشتباه می گیرند و ایندو را یکی می دانند ولی اصلا اینطور نیست ! JAVA زبانی است که در واقع نسخه پیشرفته تری از زبان C تحت ویندوز است در حالی که Java Script یک زبان مستقل از هر زبان دیگری است , JAVA هم به صورت فایل اجرایی (Execute ) وهم در صفحات وب قابل استفاده و بکارگیری است در صورتی که Java Script صرفا به منظور استفاده در وب و صفحات اینترنتی است . در درس های بعدی موارد دیگری از تفاوت ها یا شباهت های این دو زبان را ذکر خواهم کرد ...

دو زبان Java Script و VB script متداول ترین زبان های برنامه نویسی اسکریپتی در وب می باشند که از ایندو , Java Script به دلیل پشتیبانی شدن توسط بیشتر مرورگرهای وب مانند Microsoft Internet Explorer و Netscape Navigator نظر تعداد بیشتری از برنامه نویسان را به خود جلب کرده است . زبان Java Script محصولی مشترک از دو شرکت Sun Microsystem و Netscape Communications می باشد که مترجم های ان مرورگرهای وبی هستند که از آن پشتیبانی می کنند . (مترجم برنامه ایست که کدهای نوشته شده توسط برنامه نویس را بر اساس قواعد همان زبان برنامه نویسی ترجمه کرده ونتایج این پردازش را به کاربر نمایش می دهد ) یعنی وقتی کدهای نوشته شده توسط JS (Java Script) توسط مرورگر IE (Internet Explorer ) خوانده می شود , این کدها توسط مترجم JS ی که در ان تعبیه شده ترجمه میگردد وحاصل این ترجمه به بیننده ارائه می شود .

گفتیم که JS یک زبان اسکریپتی است . یعنی برنامه هایی که توسط آن می نویسیم متن ساده هستند (text only documents ) و توسط هر ویرایشگری که بتواند متن ساده ایجاد کند قابل ویرایش و مشاهده هستند . متداول ترین و ساده ترین آنها ویرایشگر Note Pad است که در تمامی نسخه های ویندوز وجود دارد . دستورات زبان JS در بین تگ های خاصی از زبان HTML قرار می گیرند (تک علامتی در زبان html است که برای مشخص کردن دستورات این زبان از متون ساده استفاده شده و شکل کلی آن به این صورت است <دستور زبان HTML>) . در این حالت script ها همراه با دستورات html و معمولا درون فایلی با پسوند htm یا html قرار میگیرند . این ساده ترین راه است . راه دیگر نوشتن برنامه ها به زبان JS , ایجاد فایلی با پسوند JS و نوشتن برنامه ها در ان است ، پس از این کار فایل JS ی که ایجاد کرده ایم را در داخل یک صفحه وب مسیردهی کرده و استفاده می کنیم . مزایا ، معایب ، و چگونگی انجام آن را در دروس بعدی شرح داده می شود....

شی گرایی و دینامیکی درمورد زبان JS

در درس قبل آموختیم زبان js با صفحات وب چه ارتباطی دارد و دانستیم که برنامه های زبان js در میان TAG های زبان HTML قرار میگیرد . اما حال بهتر است چگونگی ارتباط js با صفحات وب را بررسی کنیم . هر چیزی که شما در صفحه وب می بینید (و گاهی بعضی چیزهایی که نمی بینید ) و در تعریف کلی هر چیزی که صفحه وب را تشکیل می دهد , مثل دکمه ها ( button ) , فرم ها , عکس ها و هزاران چیز دیگر در صفحه وب , شی نام دارند . این اشیاء راه ارتباط JS با صفحات وب هستند و در واقع وظیفه اصلی JS کنترل این اشیاست . خاصیت شی گرایی (object-oriented) در JS باعث شده که بتواند با بیشتر اشیاء در صفحات وب ارتباط برقرار کند . یک مثال ساده این مفهوم را آشکارتر می کند . اگر ما دنیای واقعی خود را در نظر بگیریم می توانیم میز ها , کتاب ها , سگ ها , گربه ها , انسان ها و همه و همه را شی بنامیم . در صفحات وب نیز شی به همین معناست البته با این تفاوت که در صفحات وب بعضی از اشیاء قابل مشاهده نیستند . در صفحات وب هر شی دارای خصوصیات و مشخصه های خاص خودش است که در زمان بررسی هر شی به ان اشاره خواهم کرد .

همانطور که گفتم این اشیاء بسیار زیادند . برای راحتی استفاده از آنها , گروه ها و زیر دسته هایی در نظر می گیریم و این اشیاء را در این گروه ها طبقه بندی می کنیم .

زبان HTML به تنهایی نمی تواند با اعمالی که کاربر در درون صفحه وب انجام می دهد ارتباط برقرار کند . و علاوه بر آن توانایی ایجاد جلوه های ویژه که باعث جذابیت صفحه وب می شود را ندارد . و چون کاربر نمی تواند به وقایع (Event ) و اشیاء صفحه پاسخ دهد , حالتی کسل کننده برای او ایجاد می شود . زبان JS به خوبی این کمبود در صفحات وب را رفع می کند و به صفحات حالت فعال می دهد . در واقع JS این ویژگی را به وسیله خصلت شی گرایی اش کسب کرده است . مثلا وقتی شما اطلاعات نادرست به یک فرم در صفحه وب می دهید , JS با پیغامی می تواند به شما اطلاع دهد . به صورت ساده تر می توان گفت JS نوعی امکان انتخاب به کاربر و امکان پاسخ مناسب از طرف خود را می دهد . با یک مثال ساده تر , مفهوم آشکار تری را در اختیار شما قرار می دهم . شما دوربین عکاسی را در نظر بگیرید که بدون توجه به نور اطراف خود عکس برداری می کند . این دوربین را می توان مانند حالت غیر فعالی HTML در نظر گرفت . در سوی دیگر دوربینی را در نظر بگیرید که بنا به نور اطراف خود , شفافیت عکس را تنظیم میکند .

این دوربین را میتوان مانند JS در نظر گرفت که با محیط اطراف خود ارتباط برقرار می کند وتصمیمات لازم را می گیرد و اعمال لازم را انجام می دهد ( البته بر اساس خواست برنامه نویس ) . حال با مثالی در خود JS بحث را تکمیل می کنم . فرض کنید شما وارد صفحه وبی شده اید . بنا به برنامه ای که برنامه نویس نوشته است ابتدا پیغامی مبنی بر اینکه (( آیا شما از رنگ صفحه خوشتان می آید ؟ )) توسط JS صادر می شود . در صورت انتخاب جواب مثبت , رنگ صفحه تغییر نمی کند ولی در صورت منفی بودن پاسخ بنا به انتخاب خود شما یا برنامه نویس رنگ صفحه تغییر می کند . متاسفانه توسط برنامه نویسان مختلف تعاریف اشتباهی درباره مفهوم دینامیک بودن در زبان های برنامه نویسی ارائه می شود . بسیاری به اشتباه , به هر زبانی که شی گرا باشد دینامیک می گویند. من ابتدا نحوه اجرای JS را مورد بررسی قرار میدهم تا به نتیجه نهایی برسیم .

دو مفهوم Client 50162e languages و Server 50162e languages به ما کمک فراوانی می کنند . در اصطلاح به کامپیوتر کاربر یا بیننده صفحه , مشتری ( Client ) و به کامپیوتری که به کامپیوتر های دیگر جهت مشاهده صفحات وب سرویس می دهد , سرویس دهنده یا میزبان (Server ) می گوییم. برنامه ها و فایل های موجود در کامپیوتر میزبان , به 2 صورت می توانند برای کامپیوتر های مشتری مورد استفاده قرار گیرند . در حالت اول , فایل ها دقیقا به کامپیوتر مشتری انتقال یافته و آنجا ترجمه و اجرا می شوند . در این حالت درخواستی به میزبان فرستاده شده و میزبان این درخواست را پردازش می کند . سپس فایل درخواستی را بدون انجام هیچگونه عملیاتی به مشتری می فرستد . پس از انتقال فایل , مشتری فایل را دریافت میکند . فایل توسط مرورگر ترجمه و اجرا می شود . زبان هایی چون JS و HTML و CSS به این صورت عمل می کنند . زبان هایی که به این صورت اجرا می شوند را Client 50162e languages ( زبان های طرف مشتری ) می گویند .این زبان ها غیر دینامیکی هستند زیرا سرویس دهنده هیچ نقشی در اجرای آنها ندارد .

در حالت دوم ابتدا فایل توسط مترجمی که در کامپیوتر میزبان تعبیه شده , در خود میزبان ترجمه می شود و سپس نتایج این پردازش به مشتری ارائه می شود . مرورگرهایی که در کامپیوتر مشتری قرار دارند , نمی توانند برنامه های نوشته شده توسط اینگونه زبان ها را خودشان ترجمه و ا جرا کنند , بلکه نیاز به نقش اساسی میزبان در ترجمه آن دارند . اینگونه زبان ها را Server 50162e languages یا زبان های طرف میزبان می نامند . این زبان ها به دلیل نقش داشتن میزبان در فرایند ترجمه و در نتیجه امکان تغییر یا استفاده فعال از منابع میزبان , حالت دینامیکی دارند . مهمترین این زبان ها ASP , CGI و PHP هستند . با استفاده از مفاهیم بالا به راحتی میتوان نتیجه گرفت JS زبانی دینامیکی نیست و فرایند های مربوط به آن روی کامپیوتر مشتری صورت می گیرد .

نحوه قرار گیری برنامه های JS در صفحات وب در بخش های قبل مبانی و مفاهیم اصلی JS را آموختید . حال بهتر است ابتدا نحوه کاربرد این زبان در وب را بیاموزید و سپس شروع به آموزش کاربردهای JS نمایم . بنا به آموخته های ابتدایی شما در مورد زبان HTML , باید بیاد آورده باشید که هر سند HTML از دو بخش اصلی تشکیل شده . قسمت سر سند یا Header و قسمت بدنه سند یا Body . در اصطلاح به متونی که کدهای یک صفحه HTML را تشکیل میدهند « سند HTML » می گویند . قسمت سر سند حاوی اطلاعاتی است که مشخصات کلی صفحه از قبیل عنوان صفحه ، نسخه به کار رفته از زبان HTML را مشخص می کند . قسمت دوم بدنه صفحه می باشد که اجزای اصلی صفحه از قبیل متن ها ، عکس ها و فرم ها در آن قرار می گیرند . قسمتهای بدنه و سر سند به وسیله «تگ» های خاصی از هم جدا می شوند . در زیر تقسیم بندی ایندو را می بینید .

HTML آغاز سند
< head > آغاز سر سند
< /head > پایان سر سند
< body > آغاز بدنه سند
< /body > پایان بدنه سند
< /html> HTMLپایان سند

برنامه های نوشته شده توسط JS به تناسب کاربرد می توانند هم در قسمت سر سند و هم در قسمت بدنه سند قرار گیرند . ولی JS اکثرا در قسمت بدنه سند مورد استفاده قرار می گیرد .

برنامه های JS برای مشخص شدن از کدهای HTML داخل تگ قرار می گیرند . توجه داشته باشید که تگ < SCRIPT > برای مشخص کردن آغاز برنامه JS و تگ < /SCRIPT > برای مشخص کردن پایان برنامه JS استفاده میشوند و نوشتن هر دوی آنها در یک برنامه JS الزامیست. دانستن اینکه برای هر برنامه JS باید از تگ < SCRIPT > و < /SCRIPT > استفاده کرد بسیار مهم است .

همچنین می توان در هر سند به تعداد نامحدود از تگ < SCRIPT > و < /SCRIPT > استواده کرد ولی استفاده از یک تگ < SCRIPT > و < /SCRIPT > در داخل دیگری به هیچ وجه در JS مجاز نیست .

در زیر یک برنامه ساده که توسط JS نوشته شده و یک پیغام خوشامد گویی به کاربر می دهد آمده است . این برنامه فقط برای آشنایی بیشتر شما با مفاهیم بالاست و نکات اساسی که شما باید در مورد آن بدانید در زیر آمده است . همچنین شماره های ابتدای هر سطر فقط برای نشان دادن شماره خطوط است و آنها جزء سند نیستند .

1 < html >
2 < head >
3 < /head >
4 < body >
5 < script language=”javascript1.2 ” >
6 document.writeln( "< font size=6 color=789867 >welcome to
this page< /font>" )
7 < /SCRIPT >
8 < /body >
9 < /html >

مطالب زیر شما را در درک مفاهیم مورد نیاز ما از کد های بالا یاری می کنند .

_ رعایت تو رفتگی های سند در هنگام ایجاد آن الزامی نیست و فقط به خوانایی سند کمک می کند.
_ ملاحظه می کنید که در این سند ، برنامه JS در قسمت بدنه سند آمده است .
_ در سطر 6 و در میان تگ های < SCRIPT > و < /SCRIPT > برنامه ساده ای از JS آمده است که فعلا دانستن جزئیات آن برای شما الزامی نیست .
_ در سطر 5 در داخل تگ < SCRIPT > عبارت language=”javascript1.2” نسخه JS مورد استفاده در این اسکریپت ( برنامه نوشته شده توسط زبان JS ) را مشخص می کند .
_ ذکر عبارت language=”javascript1.2” در برنامه الزامی نیست و فقط باعث می شود مرورگرهایی که نسخه های پایین تری از JS را پشتیبانی می کنند ، قادر به اجرای برنامه های JS نباشند .
_ با مشخص کردن نسخه ای از JS نسخه های بالاتر از آن نیز قابلیت اجرای آن برنامه را خواهند داشت .
_هر نسخه از JS مربوط به دستوراتی است که آن نسخه پشتیبانی می کند ؛ مثلا دستورات 1,1 JS در1,2 JS قابل اجرا هستند ولی در 0,1 JS خیر .
_ در بررسی دستورات JS به توانایی پشتیبانی آنها در نسخه های مختلف JS اشاره خواهم کرد

در درس قبل با یک روش برای استفاده از JS در صفحات HTML آشنا شدیم . در این درس به ذکر 2 روش دیگر می پردازم . توجه داشته باشید که ممکن است این روش ها به طور کامل برای شما قابل درک نباشند ، ولی به هیچ وجه نگران نباشید چون این مطالب فعلا برای این است که شما بدانید زبان Java Script با چه روش هایی مورد استفاده قرار می گیرد و در مباحثی که برنامه خواهیم نوشت بررسی بیشتری صورت خواهیم داد .
روش دوم باز هم مربوط به بحث شئ گرایی است . در این حالت از استفاده JS در صفحات وب ، شما به راحتی و با استفاده از دستورات خاصی از JS تمام وقایعی که بر روی اشیاء صفحه روی می دهد را کنترل می کنید و در مقابل آن عکس العمل دلخواه را نشان می دهید . این دستورات که وظیفه کنترل وقایع صفحه وب را دارند ، در کنار خود اشیاء قرار می گیرند و یکی از خصوصیات اشیاء را تشکیل می دهند .

فرض کنید ما عکسی در صفحه وب داریم که می خواهیم به محض اینکه نمایشگر ماوس روی آن قرار گرفت پیغامی که شامل توضیحاتی از عکس است برای کاربر صادر بشود . وظیفه ما این است که کنترل کننده ای را مورد استفاده قرار دهیم که تشخیص دهد « آیا ماوس روی شئ مورد نظر قرار گرفته یا خیر ؟ » . و پس از تشخیص پیغام برای کاربر صادر بشود . در پایین شما می توانید این برنامه و توضیحات مفیدی در مورد آن را برای شما ارائه میکنم .

1 < HTML >
2 < head >
3 < /head >
4
5 < body >
6 < img src="pic1.gif" onmouseover="alert('this pic is about
computers !!')" >
7 < /body >
8 < /HTML >

_ در درس قبل شما با تگهای موجود در سطرهای 1 ، 2 ، 3 ، 5 ، 7 و 8 آشنا شدید .

_ در سطر 6 از یک تگ HTML به نام IMG استفاده شده که وظیفه این تگ نمایش تصاویر و عکس ها در صفحات وب است .

_ در سطر 6 ، src یکی از خصوصیات مهم و معروف تگ Img است که آدرس فایل عکس را مشخص می کند .

_ و اما ONMOUSEOVER . این همان خصوصیتی است که شما آن را در سطر 6 و در داخل تگ IMG می بینید . این عبارت همان کنترل کننده ماست که وظیفه کنترل کردن ماوس در هنگام قرار گیری برروی شئ مورد نظر را دارد . عبارت Onmouseover در لاتین به این معناست ، «زمانی که ماوس روی آن قرار گرفت » .

_ بعد از علامت = و در داخل "" عکس العمل یا همان دستوریست که ما می خواهیم در صورت قرار گرفتن ماوس انجام گیرد . در اینجا از دستور Alert استفاده شده که صفحه ای برای کاربر باز کرده و متن داخل پرانتز را نشان می دهد .

_ در صورت قرار گرفتن ماوس روی عکس ، کاربر صفحه زیر را مشاهده خواهد کرد .

_ حال عبارت onmouseover ، یکی از خصوصیات (Properties ) این شی محسوب می شود .

توجه داشته باشید که تحلیل کد ها در این زبان برنامه نویسی بسیار مهم است . مطمئن باشید که اگر بتوانید کد ها را به خوبی برای خودتان تحلیل کنید در برنامه نویسی موفق خواهید بود . روش سوم برای استفاده JS در صفحات وب ، بیشتر مورد توجه حرفه ای ها و مورد استفاده در پروژه های بزرگ است . در این روش شما برنامه های JS خود را در صفحه وب نمی نویسید بلکه آن را در یک فایل جداگانه و با پسوند js. می نویسید . تنها کاری که شما باید برای استفاده این فایل JS بکنید این است که آن را در صفحه وب مسیر دهی کنید .

تگ Link راه حل شماست !!! این تگ به شما کمک می کند که فایل JS خود را مسیر دهی نمایید . شکل کلی استفاده از این تگ به صورت زیر است .

دلیل اینکه این روش در پروژه های بزرگ استفاده می شود را در مثال زیر بررسی می کنیم .

فرض کنید شما باید سایتی طراحی کنید که شامل 150 صفحه است و وظیفه دارید یک برنامه JS که 10 کیلو بایت حجم دارد را در هر یک از این 150 صفحه بکار ببرید . با یک حساب سر انگشتی می فهمید که با افزودن این برنامه 10 کیلو بایت به صفحات ، 1500 کیلو بایت یعنی یک و نیم مگابایت به حجم سایت شما افزوده می شود و این یک فاجعه است !!!!!!
در عوض شما می توانید به جای استفاده کل برنامه در هر یک از صفحات ، با استفاده از تگ یک خطی Link ، در تمام این 150 صفحه فقط فایل JS که تنها 10 کیلو بایت حجم دارد را مسیر دهی کنید ؛ و این یعنی یک بهره وری خوب در حجم.همیشه به یاد داشته باشید بهره وری حجمی در صفحات وب و طراحی سایت وب بسیار بسیار مهم است . در بخش بعد کنترل کننده های وقایع در JS و عملگرهای JS را برای شما تشریح می کنیم ...

متغییرها و عملگرهای JS
بعد از یک تاخیر کوتاه مدت دوباره وارد دنیای زیبای JS می شویم .در درسهای قبل مطالب مقدماتی مهمی را تحت پوشش قرار دادیم تا با زمینه ای مطلوب وارد بخش تجربی و عملی آموزش JS بشویم . در این درس علائم ریاضی که در JS کاربرد دارند را بررسی می کنیم . در ابتدا به مفهوم «متغییر» می پردازیم . در توضیحی بسیار ساده باید بگویم ، متغییر مانند یک جعبه می باشد که بر اساس نوعش می تواند اشیاء و مقادیر مختلفی را در خود جای دهد . طبیعی است که هر یک از این جعبه ها باید برای خودش اسم خاص و منحصر به فردی داشته باشد تا از دیگر جعبه ها مجزا شده و قابل تمییز دادن باشد . متغییر ها نیز دقیقا حکم این جعبه ها را دارند ، مقادیر خاصی را می پذیرند و با نام خاصی از بقیه جدا می شوند . و اما انواع متغییر ؛ یکی از معمول ترین و معروفترین نوع متغییر ها ، متغییر های عددی(numeric variables) هستند که می توانند اعداد مختلف را بدون محدودیت رقمی در خود جای دهند . از این متغییر ها می توان برای اعداد اعشاری و منفی نیز استفاده کرد . برای مثال وقتی ما می خواهیم عدد 348/3242 را به متغییری به نام mark نسبت دهیم باید به این صورت ، عمل مقدار دهی را انجام دهیم :

mark=3242.348

نوع دیگری از متغییر ها در JS متغییر های رشته ای (string variables) هستند که می توانند یک متن یا عبارت را در خود جای دهند به عنوان مثال اگر بخواهیم عبارت world wide web را به متغییر www نسبت دهیم به این صورت عمل می کنیم :
www="world wide web"

توجه داشته باشید که باید در آغاز و پایان عبارت علامت " (quotation mark) را قرار بدهیم .

دانستن این نکته بسیار مهم است که هیچگاه دو متغییر mark=3242.348 و "3242.348"=mark با هم برابر نیستند زیرا اولی یک متغییر عددی و دومی یک متغییر رشته ای است !!! پس هیچگاه از علامت "" برای متغییر های عددی استفاده نکنید . نکته مهم دیگر این است که نباید در قسمت نام متغییر از علامت فاصله (space) استفاده کنید به عنوان مثال متغییر w w w هرگز برای Java Script قابل قبول نیست و یک خطای برنامه نویسی محسوب می شود . متغییر منطقی (Boolean variables) نوعی از متغییر است که نسبت به بقیه انواع متغییر ها محدود تر است ، بدین معنی که فقط دو مقدار TRUE (درست) و False (نادرست) را می پذیرد . از متغییر بولین (منطقی) اکثرا در نوشتن شرط ها در JS استفاده می شود . و اما متغییر شئ (Object Variables) که از انواع مهم متغییر هاست . این نوع از متغییر در اکثر برنامه های JS کاربرد دارد و در ان یک شئ یا اتفاق مربوط به آن شئ ذخیره می شود . مثلا وقتی می خواهیم شئ به اسم Core را در داخل متغییریبه نام Attribute جای دهیم بدین صورت عمل می کنیم:

Attribute=core

در مورد این نوع متغییر در درس های آینده توضیحات بیشتری خواهم داد .

در پایان بحث مربوط به متغییر ها بهتر از به نکات بسیار مهم زیر توجه کنید :

_ زبان JS در تعریف نام متغییر ها به حروف بزرگ و کوچک حساس است یعنی هیچگاه متغییرهای Www ، WWW و www با هم برابر نیستند و JS هر یک را متغییری جداگانه می داند .

_ هیچگاه نام یک متغییر با عدد شروع نمی شود . در ضمن استفاده از نقطه (.) و علامت هایی چون @ و $ و % در نام متغییر جایز نیست . پس متغییر هایی چون 12fm و se.r و rt@r برای زبان JS بی معنی هستند .

_ برای نام یک متغییر نمی توان از کلمات رزرو شده JS مانند this ، comment ، case و بسیاری دیگر استفاده کرد . تعداد کلمات رزرو شده در JS زیاد است و من به مرور زمان به همه آنها اشاره خواهم کرد .

_ وقتی ما متغییری مانند "mark="world wide web را تعریف می کنیم در واقع مقدار world wide web را به متغییر mark نسبت می دهیم و تصور اینکه بر اساس این دستور world wide web با mark برابر است ، تصوری کاملا نادرست است .

برای هر کسی که اندکی اطلاعات پیش زمینه برنامه نویسی دارد واضح است که هر زبانی که عملگرهای ریاضی چون جمع ، تفریق و غیره را نداشته باشد ، یک زبان ناقص بوده و فاقد یکی از اساسی ترین خصوصیات یک زبان برنامه نویسی است . زبان JS دارای یکی از کاملترین علائم و دستورات ریاضی است که از نقاط قوت این زبان به شمار می رود . توجه داشته باشید که ما می توانیم توسط این عملگر ها بین دو یا چند متغییر یک یا چند عمل ریاضی را انجام داده و حاصل را به یک متغییر دیگر نسبت دهیم . ساده ترین عملگر این زبان ، عملگر جمع است که دارای نکات مهمی است . فرض کنیم دو متغییر به نام های m1=5 و m2=7 داشته باشیم که هر دو متغییر عددی باشند . در این صورت می توانیم اندو را با استفاده از دستور زیر با هم چمع کرده و داخل متغییر d قرار دهیم :

d=m1+m2

در این حالت متغییر d دارای مقدار عددی 12 خواهد بود . نکته قابل توجه این است که از جمع دو متغییر عددی ، متغییری عددی به وجود می آید .

حال فرض کنید دو متغییر m1 و m2 ی ما دارای مقدار رشته ای day و night باشند . در این صورت در مورد حاصل جمع آنها داریم :

d=m1+m2

در حالت جمع دو مقدار رشته ای ، مقدار حاصل برابر است با مقادیر دو متغییر در کنار هم ، یعنی مقدار dبرابر خواهد بود با daynight ، و همانطور که مشاهده می کنید هیچ فاصله ای بین دو مقدار نخواهد بود. حتما به این نکته بسیار مهم توجه داشته باشید که هیچگاه m1+m2 با m2+m1 برابر نیست زیرا همیشه در جمع رشته ای مقدار متغییر دوم بعد از مقدار متغییر اول قرار خواهد گرفت یعنی

r=m1+m2 پس : r=daynight
t=m2+m1 پس : t=nightday

ممکن است شما بخواهید یک متغییر عددی را با یک متغییر رشته ای جمع کنید . در این صورت یک مقدار رشته ای از جمع دو متغییر بدست خواهد آمد . مثال زیر مطلب آشکار تری در اختیار شما قرار می دهد .

P="javascript"
t=239
f1=p+t پس : f1="javascript239"
f2=t+p پس : f2="239javascript"

نکته قابل توجه دیگر این است که در جمع دو متغییر منطقی ، مقدار TRUE برابر با 1 (یک) و مقدار FALSE برابر با 0 (صفر) محسوب خواهد شد .در واقع False را می توان دارای مقدار پوچ و True را می توان دارای مقدار کامل یعنی 1 در نظر گرفت . اگر هر دو متغییر True باشند حاصل جمع انها برابر 2 خواهد بود ، در صورت FALSE بودن هر دو حاصل برابر صفر و در صورتی که یکی True و دیگری False باشد حاصل برابر 1 خواهد بود . چون در این کلاس کاملترین مطالب و کوچکترین نکات در مورد مباحث مختلف JS ارائه می شود ، اتمام هر مبحث در یک جلسه امکان پذیر نیست پس ادامه بحث در مورد عملگر ها را به بخش بعد موکول می کنیم ...

متغییرها و عملگرهای JS قسمت دوم
دربخش قبل مطالب کاملی در مورد عملگر جمع در JS گفتم ، حال به عملگر تفریق می رسیم که حاوی نکات جالبی ست . دو متغییر عددی a=12 و b=7 را در نظر می گیریم . ما می توانیم عمل تفریق بین دو متغییر a و b را به دو صورت a-b و b-a انجام دهیم که حاصل این دو با هم برابر نیست !

a-b=12-7=5
b-a=7-12=-5

بر خلاف جمع دو متغییر رشته ای ، تفریق دو متغییر رشته ای امکان پذیر نیست و در صورت تفریق ، در هر حالت ، حاصل برابر با رشته NaN به معنی Not a Number خواهد بود . این خصوصیت شامل تفریق یک متغییر رشته ای از عددی و بالعکس می باشد . با یک مثال بحث را روشنتر می کنیم .

فرض کنید دو متغییر رشته ای "www"a= و "net"b= را تعریف کرده ایم ، در هر دو صورت تفریق a-b و b-a حاصل برابر NaN خواهد بود .

a="www"
b="net"
d=a-b
f=b-a

در نتیجه : d=f=NaN

و در صورت داشتن یک متغییر رشته ای و یک متغییر عددی :

a=12
b="net"
d=a-b
f=b-a

در نتیجه : d=f=NaN

پس به این نتیجه کلی می رسیم که هر گاه یک متغییر رشته ای _ در هر حالت _ در عمل تفریق وجود داشته باشد حاصل عبارت رشته ای NaN خواهد بود . در تفریق متغییر های «منطقی» به مانند جمع متغییر های رشته ای ، True مفهوم 1(یک) و False مفهوم 0 (صفر) خواهد داشت . به مثال زیر توجه کنید :

a=true
b=false
c=a-b
d=b-a

در نتیجه خواهیم داشت : c=1-0=1 و همچنین : d=0-1=-1

در این مورد نیز a-b و b-a با هم متفاوتند .

حال عملگر ضرب را بررسی می کنیم . برای انجام عمل ضرب از * استفاده می کنیم . در این حالت می توان به ضرب دو عدد (چه صحیح و چه اعشاری) اشاره نمود که به صورت زیر تعریف می شود .

c=a*b

بدین معنی که متغییر a در b ضرب شود و حاصل به متغییر c نسبت داده شود . در مثال زیر به این مطلب اشاره شده است .

a=12
b=3
c=a*b
d=b*a

در نتیجه داریم : c=d=36

مشاهده کردید که در ضرب تعویض جای اعداد تاثیری در جواب ضرب نمی گذارد یعنی a*b=b*a . در صورت ضرب دو متغییر رشته ای یا یک متغییر رشته ای در یک متغییر عددی حاصل رشته NaN خواهد بود .پس نمیتوان متغییر رشته ای را در هیچ نوع متغییر دیگر ضرب نمود . حال به ضرب متغییر های منطقی می رسیم . همانطور که گفته شد ، true مفهوم یک و False مفهوم صفر دارد . در ضرب متغییر های رشته ای سه حالت پیش می آید :

1 _ در صورت ضرب دو متغییر منطقی True ، حاصل 1 خواهد بود .

2 _ ضرب دو متغییر منطقی false نیز حاصل صفر خواهد داشت .

3 _ در ضرب یک متغییر منطقی True در یک متغییر False ، جواب صفر بدست خواهد آمد .

پس به این نتیجه می رسیم که در ضرب متغییر های منطقی فقط دو جواب 0و1 خواهید داشت و فقط در صورتی جواب برابر 1 خواهد بود که هیچ متغییر False ی در ضرب شرکت نداشته باشد.و اما عملگر تقسیم . عملگری که می توان با استفاده از آن در JS عمل تقسیم را انجام داد « / » است . اولین موردی که از این عملگر بررسی می کنیم ، حالت تقسیم دو متغییر عددی است . فرض کنید ما دو متغییر با نام های number1 و number2 با مقادیر عددی 24 و 8 داشته باشیم.حال می توانیم عمل تقسیم بین این دو متغییر را به دو صورت number1/number2 و number2/number1 انجام دهیم که در حالت اول نتیجه عدد 3 و در حالت دوم عدد 0.3333333333333333 خواهد بود .

نکته 1 : زبان JS در حالت اعشاری فقط تا 16 رقم اعشاری محاسبه می کند .

نکته 2 : در عمل تقسیم هر عددی بر عدد صفر ، حاصل برابر با رشته Infinity به معنی بینهایت خواهد بود .

در تقسیم یک متغییر رشته ای به یک متغییر عددی و بلعکس حاصل برابر با NaN خواهد بود . در تقسیم متغییر های منطقی ، حالت های زیر به وجود می آید .

_ در تقسیم یک متغییر منطقی True بر True حاصل برابر با 1 خواهد بود
_ در تقسیم یک متغییر منطقی True بر False حاصل برابر با رشته Infinityخواهد بود
_ در تقسیم یک متغییر منطقی False بر True حاصل برابر با صفر خواهد بود
_ در تقسیم یک متغییر منطقی False بر False حاصل برابر با رشته Infinity خواهد بود

بخش مهم و اصلی عملگر ها در JS به پایان رسید ، تعدادی از عملگر های دیگر را در زمان نیاز شرح خواهم داد . در پایان سوالی را که تعداد فراوانی از دوستان پرسیده بودند به همراه پاسخی که داده ام در اینجا قرار می دهم .

سوال : با توجه به اینکه فواصل بین کلاس های شما زیاد است,لطفا کتاب یا سایت مناسبی را برای مطالعه در بین کلاس هایتان معرفی نمایید.

پاسخ : باز هم از همه شما با خاطر وقفه بین کلاس ها عذر می خوام . در مورد کتاب های فارسی من هیچ کتابی را پیشنهاد نمی کنم چون بسیاری از انها نه تنها مطالب مفیدی ننوشتن بلکه مطالب اشتباهی هم در مورد JS نوشتن . و اما در مورد کتاب های انگلیسی من کتابهای کمپانی O'Reilly رو پیشنهاد می کنم که 100% مفید هستند . کتاب JAVA SCRIPT این کمپانی را David Flannagan نوشته و این کتاب کاملا استاندارد است . این کتاب به صورت آنلاین و مجانی قابل دسترسیست .


نظرات 0 + ارسال نظر
برای نمایش آواتار خود در این وبلاگ در سایت Gravatar.com ثبت نام کنید. (راهنما)
ایمیل شما بعد از ثبت نمایش داده نخواهد شد