PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : آموزش گام به گام جاوا اسکریپت Java Script



uody
9th April 2011, 12:53 AM
آموزش گام به گام جاوا اسکریپت 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 و حالت ديناميكي اين زبان شرح داده خواهد شد.

uody
9th April 2011, 12:54 AM
شي گرايي و ديناميكي درمورد زبان 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 زباني ديناميكي نيست و فرايند هاي مربوط به آن روي كامپيوتر مشتري صورت مي گيرد .

uody
9th April 2011, 12:55 AM
نحوه قرار گيري برنامه هاي 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 اشاره خواهم كرد ...

uody
9th April 2011, 12:55 AM
در درس قبل با يك روش براي استفاده از 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 را براي شما تشريح مي كنيم ...

uody
9th April 2011, 12:57 AM
متغييرها و عملگرهاي 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 ارائه مي شود ، اتمام هر مبحث در يك جلسه امكان پذير نيست پس ادامه بحث در مورد عملگر ها را به بخش بعد موكول مي كنيم ...

uody
9th April 2011, 12:58 AM
متغييرها و عملگرهاي 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 نوشته و اين كتاب كاملا استاندارد است . اين كتاب به صورت آنلاين و مجاني قابل دسترسيست .

منبع:xpatogh

uody
13th April 2011, 01:39 PM
جاوااسکريپت چيست؟
قبل از هر چيز بايد به اطلاع شما برسانم که براي يادگيري جاوااسکريپت، شما نياز به دانستن زبان HTML و درک کاملي از طراحي و ساخت صفحات وب بايد داشته باشيد چون جاوااسکريپت يک زبان مجزا از اچ تي ام ال نيست و بايد همراه با کدهاي HTML در يک صفحه بکار رود تا کارآيي داشته باشد.
با اين توضيح مي پردازيم به ادامه مطلب، همانطور که مي دانيد زبان اچ تي ام ال به تنهايي جوابگوي نياز بينندگان وب سايتها نمي باشد چون آنها علاقه خاصي به جذابيتها و ارتباط متقابل ميان خود و صفحات وب دارند که اچ تي ام ال نمي تواند جذابيت قابل توجهي به يک صفحه بدهد و يا با يک کاربر ارتباط برقرار کند. پس براي برطرف کردن اين مشکلات، صفحات وب نيازمند يک زبان قوي تر مي باشد که به همين منظور زبان جاوااسکريپت خلق شد.

جاوااسکريپت توسط شرکت Netscape اختراع شد و به عنوان اولين زبان اسکريپت نويسي در وب توسعه يافت که در حال حاضر پرکاربردترين و محبوب ترين زبان اسکريپت نويسي در دنيا مي باشد که يکي از دلايل آن، پشتيباني دو مرورگر معروف وب، Internet Explorer و Netscape Navigator از اين زبان مي باشد. نا گفته نماند که شرکت مايکروسافت هم براي اينکه از نت اسکيپ در اين زمينه عقب نماند، نسخه مربوط به خود را بنام Jscript توليد کرد.



تفاوت جاوااسکريپت با جاوا

تقريباً در هر جا که آموزش جاوااسکريپت هست اين مطلب هم مشاهده مي شود چون خيلي ها فکر مي کنند که اين دو با هم يکي بوده يا حداقل اينکه جاوااسکريپت ساده شده زبان جاوا براي کاربرد در وب مي باشد که اصلاً اين چنين نيست.

همانطور که ميدانيد جاوااسکريپت متعلق به شرکت نت اسکيپ مي باشد اما زبان جاوا متعلق به شرکت Sun Microsystems است. جاوااسکريپت در اصل يک زبان اسکريپت نويسي است نه يک زبان برنامه نويسي کامپيوتر، شايد بتوان اسکريپتها را يک نوع زبان برنامه نويسي خيلي سبک و ساده ناميد اما جاوا يک زبان برنامه نويسي کاملاً پيچيده مانند زبان C است. تفاوت ديگر آنها اينست که جاوااسکريپت توسط يک برنامه مفسر يعني interpreter در مرورگر تعريف و تفسير شده تا قابل اجرا باشد و حتماً هم اين کار در مرورگر انجام مي شود اما برنامه هاي جاوا بايد توسط يک کامپايلر Compiler ، کامپايل شده که کامپايل شدن يعني جمع آوري اطلاعات مورد نظر و ترجمه آن اطلاعات به زبان قابل فهم براي کامپيوتر و تبديل آن به يک برنامه کاربردي واحد و مستقل براي کاربر را گويند. به همين دليل برنامه هاي جاوا را که اپلت applet مي نامند، مستقل اجرا مي شوند. البته اپلتهاي جاوا را مي توان در صفحات وب هم گنجاند.

در يک جمله مي توان گفت که جاوااسکريپت فقط در صفحات وب تأثيرگذار است اما زبان جاوا براي خلق برنامه هاي پيچيده در کامپيوتر ساخته شده است.



قابليتهاي جاوااسکريپت

اکنون که يک مفهومي از زبان جاوااسکريپت را در ذهن داريد، بايد ببينيم که با آن چکار مي توانيم انجام دهيم يا بهتر بگويم که جاوااسکريپت چه کاري براي ما انجام مي دهد و چه قابليتهايي را در مرورگر ايجاد مي کند.

در حقيقت جاوااسکريپت يک ابزار براي طراحان وب و نويسندگان کدهاي HTML مي باشد. جاوااسکريپت داراي ترکيباتي ساده نسبت به زبانهاي برنامه نويسي است که براحتي مي توان آنها را داخل کدهاي اچ تي ام ال يک صفحه قرار داد و از آنها استفاده کرد. يکي از قابليتهاي ويژه جاوااسکريپت رايگان بودن آن است که اگر شما زبان HTML را بدانيد، مي توانيد با کمي دانستن جاوااسکريپت کدهاي آماده که بيش از 2000 نوع از آنها در وب وجود دارد را در صفحات خود بکار گيريد.

با استفاده از اين زبان مي توانيد متنهاي پويا و متحرک در صفحات و در نقاط مختلف مرورگرها مانند نوار وضعيت آنها خلق کنيد. يکي ديگر از قابليتهاي اين زبان عکس العمل نشان دادن به وقايع و اتفاقات مي باشد بطور مثال واکنش نسبت به کليک يکي از دکمه هاي موس يا فشردن يک کليد بر روي کيبورد و يا انجام عملي هنگام بسته شدن صفحه مرورگر.

جاوااسکريپت حتي مي تواند کدهاي اچ تي ام ال را بخواند و يا توليد کند که توسط اين خاصيت مي توانيد در هر زمان خاص يک متني را توليد يا تغيير دهيد و يا در زماني مشخص عکسي را جايگزين عکسي ديگر کنيد.

يکي از بهترين ويژگيهاي جاوااسکريپت، اعتبار بخشيدن به اطلاعات مي باشد مثلاً شما يک فرمي براي ارتباط با کاربر خود ساخته ايد و مي خواهيد قبل از اينکه آن اطلاعات به سرور فرستاده شود، بازبيني شده تا اگر مشکلي وجود داشته باشد به کاربر اطلاع داده شود تا در صدد رفع آن برآيد. چون جاوااسکريپت اصطلاحاً Client side است، يعني در سيستم کاربر اجرا شده و مستقل از وب سرور است مي تواند ترافيک روي سرور را کم کرده که اين موضوع يک امتياز مثبت براي ميزبانان وب محسوب مي شود.

هستی نامدار
1st December 2011, 07:26 PM
سلام مرسی به خاطر مطالب مفیدتون.
من می خوام یه برنامه بنویسم که بتونم به میل سرور سایتی وصل شم و بتونم ip افرادی که وارد سایت می شوند را ثبت کنم.
در حال حاضر هیچ نظری ندارم که چظور این کارو باید انجام بدم. اگه ایده ای دارید لطفا کمک کنید.

استفاده از تمامی مطالب سایت تنها با ذکر منبع آن به نام سایت علمی نخبگان جوان و ذکر آدرس سایت مجاز است

استفاده از نام و برند نخبگان جوان به هر نحو توسط سایر سایت ها ممنوع بوده و پیگرد قانونی دارد