در این آموزش موارد زیر را برسی خواهیم کرد:
- مقدمه و معرفی زبان جاوا اسکریپت
- مکان قرار گیری اسکریپت ها
- نکات مقدماتی در کد نویسی
معرفی Java Script:
در قسمت آموزش HTML ، با زبان طراحی صفحات وب آشنا شدید. به وسیله امکانات زبان HTML ، می توان انواع صفحات وب را با کلیه اجزای مورد نیاز از قبیل نوشته ها ، جداول ، تصاویر ، فرم ها و … را ایجاد کرد . اما HTML صرفا یک زبان طراحی است و توانایی برنامه سازی، کنترل فرم ها ، پاسخ به رویدادهای برنامه و عملکرد کاربر و … را ندارد.
به همین دلیل باید از یک زبان برنامه نویسی در صفحات وب استفاده کرد. Java Script یکی از زبان های برنامه نویسی اسکریپتی است ، که اولین بار توسط شرکت Netscape Communicator عرضه کننده مرورگر معروف Netscape ارائه شد و امروزه متداولترین زبان اسکریپت نویسی صفحات وب است.
توجه: قبل از مطالعه قسمت آموزش Java Script، شما باید به طور کامل با زبان HTML و به خصوص تگ <script> آشنا باشید . برای مطالعه قسمت های ذکر شده به بخش آموزش HTML و آموزش تگ <script> بروید.
خصوصیات مهم Java Script:
Java Script یک زبان برنامه نویسی اسکریپتی است . دستور العمل های زبان های اسکریپتی ، در کامپیوتر کاربر و توسط مرورگر اجرا شده و برای اجرا نیازی به برنامه کمکی خاصی ندارند . به این زبان ها در اصطلاح طرف مشتری ( Client Side ) می گویند. در مقابل زبان های مثل ASP.NET ابتدا توسط سرور ارسال کننده وب اجرا شده و سپس نتایج خروجی به زبان HTML برای اجرا در مرورگر فرستاده می شود . به این زبان ها در اصطلاح طرف سرور ( Server Side ) می گویند.
زبان های اسکریپتی ، جزء زبان های برنامه نویسی سبک هستند . این زبان ها در هنگام اجرا فازی به نام کامپایل* را طی نکرده و دستورات آن ها به صورت خط به خط اجرا می شوند.
کامپایل: برنامه های نوشته شده به زبان های برنامه نویسی مثل VB , C یا #C در هنگام اجرا ابتدا توسط کامپایلر به طور کامل خوانده شده و اشکال زدایی می شوند و در صورت عدم وجود اشکال ، اجرا خواهند شد . اما برنامه های نوشته شده به زبان های اسکریپتی ، به صورت خط به خط توسط مرورگر خوانده شده و اجرا می شوند.
برخی از امکانات Java Script:
Java Script به طراحان وب ، یک ابزار برنامه نویسی ساده و کارا می دهد.
Java Script به رویدادهای مختلف در صفحه واکنش نشان می دهد . برای مثال می توان یک تابع Java Script تعریف کرده تا در هنگام وقوع یک رویداد مثل کلیک بر روی یک دکمه یا لود شدن صفحه ، اجرا شود.
Java Script می تواند اطلاعات ارسالی یک فرم را اعتبار سنجی و کنترل نموده و در صورت صحیح بود ، آنها را به سرور ارسال کند . این کار باعث جلوگیری از ورود اطلاعات نادرست به سرور و کاهش ترافیک آن می شود.
Java Script توانایی تشخیص نوع و نسخه مرورگر مورد استفاده کاربر را داشته و می تواند بر حسب آن نوع مرورگر خاص ، تنطیمات و صفحات ویژه ای را بارگذاری نماید.
Java Script توانایی خواندن و نوشتن اطلاعات مورد نیاز مرورگر را بر روی کامپیوتر بازدید کننده صفحه را داراست ، که در اصطلاح به این کار ایجاد و خواندن Cookie می گویند.
Java Script می تواند انواع کادرهای اخطار ، تایید و دریافت ورودی را به کاربر نمایش دهد .
تفاوت Java و Java Script:
زبان های برنامه نویسی Java و Java Script دارای ساختار دستوری مشابه به هم هستند ، ولی ۲ زبان کاملا مجزا هستند.
Java یک زبان شی گرا قدرتمند برای برنامه نویسی بر روی پلتفرم های مختلف است ، در حالی که Java Script یک زبان ساده اسکریپت نویسی در مرورگر های وب است.
نحوه تعریف دستورات Java Script در صفحه:
برای تعریف و ایجاد یک اسکریپت ، از تگ <script> استفاده می شود . کلیه دستورات مورد نظر اسکریپت ، درون تگ باز و بسته <script> تعریف شده و به عبارتی محدوده کدهای اسکریپت را تعیین می کند . در هر صفحه HTML ، می توان به تعداد مورد نیاز از تگ <script> استفاده کرد ، که هر تگ به صورت مجموعه ای واحد برای خود عمل می کند .
توجه: قبل از مطالعه قسمت آموزش Java Script ، شما باید به طور کامل با زبان HTML و به خصوص تگ <script> آشنا باشید . برای مطالعه قسمت های ذکر شده به بخش آموزش HTML و بخش آموزش تگ <script> بروید.
مثال: در مثال زیر یک اسکریت ساده در صفحه قرار داده شده است . به نکات زیر دقت کنید :
نکته ۱: علاوه بر Java Script ، زبان های اسکریپتی دیگر از قبیل VB Script یا EcmaScript نیز وجود دارند و در هر تگ < script > باید به وسیله خاصیت Type نوع و زبان اسکریپتی مورد استفاده در ان اسکریپت را تعیین کرد . در مثال زیر زبان اسکریپت Java Script و نوع آن متن تعیین شده است .
نکته ۲: در مثال زیر از دستور document.write استفاده شده است . این دستور برای نمایش یک متن خروجی که در پرانتز جلوی آن تعیین می شود ، در صفحه به کار می رود . در ادامه با شی document و خواص و متدهای آن آشنا خواهید شد.
<html> <head> < title > Title of Page عنوان صفحه < /title > </head> <body> <script type="text/javascript"> document.write ( "This is an Script !" ) </script> </body> </html>
انواع حالت های دستورات اسکریپتی :
به طور کلی ۲ حالت اسکریپت ( برنامه اجرایی ) در صفحات وب قابل پیاده سازی است:
- اسکریپت های که می خواهیم به محض لود شدن صفحه ، اجرا شده و اثر خود را نمایش دهند . در این حالت باید اسکریپت ها را در قسمت < body > صفحه قرار داد.
- اسکریپت هایی که می خواهیم در هنگام بروز یک رویداد در صفحه ، مثل کلیک بر روی یک دکمه خاص و … اجرا شوند . به عبارت دیگر می خواهیم اجرای آنها کنترل شده باشد . در این حالت دستورات اسکریپت را در قسمت < head > صفحه و یا در یک فایل خارجی تعریف کرد.
نکته: گاهی اوقات می خواهیم از دستورات اسکریپتی یکسان و مشترک در تمام یا گروهی از صفحات یک وب سایت استفاده کنیم . در این حالت برای جلوگیری از تکرار دستورات در تمام صفحه های مذکور ، کاهش حجم کد نویسی ، افزایش سرعت طراحی و اعمال تغییرات سریع و آسان به دستورات ، بهتر است همه آن اسکریپت ها را یکبار در یک فایل خارجی تعریف کرده و از آن به طور مشترک در تمام صفحات استفاده کرد . برای دریافت اطلاعات بیشتر به روش سوم قرار دهی اسکریپت در صفحات وب در پایین صفحه بروید .
محل قرار دادن اسکریپت ها در صفحات وب :
به طور کلی ۳ روش برای قرار دادن اسکریپت ها در صفحات وب وجود دارد:
۱) درون محدوده اصلی صفحات HTML ، در قسمت تگ <body>:
اسکریپت های تعریف شده در این قسمت ، به محض بارگداری و نمایش صفحه اجرا شده و خروجی خود را تولید می کنند . این نوع اسکریپت ها می توان در هر جای محدوه تگ < body > صفحات تعریف کرد . در این نوع اسکریپت ها ، هیچ کنترلی از سوی کاربر برای اجرای آنها وجود ندارد ، مگر اینکه دستورات آن در قالب یک تابع ( function ) تعریف شده باشند ، که تا زمان فراخوانی آن تابع اجرا نخواهند شد . برای دریافت اطلاعات بیشتر در مورد توابع جاوا اسکریپت ، به قسمت تعریف توابع در جاوا اسکریپت بروید.
مثال: در مثال زیر یک اسکریپت ساده در قسمت تگ < body > صفحه ایجاد شده است . این اسکریپت به محض لود شدن صفحه اجرا شده و خروجی خود را تولید می کند.
<html> <head> <title > Title of Page عنوان صفحه < /title > </head> <body> < script type="text/javascript"> document.write ( "This script is placed in the body section . " ) </script> </body> </html>
۲) در قسمت تگ <head>:
اسکریپت هایی که می خواهیم در هنگام بروز یک رویداد در صفحه مثل کلیک بر روی یک دکمه و … اجرا شوند ، را می توان در قسمت < head > تعریف کرد . دستورات اسکریپت های این قسمت بایستی در قالب توابع تعریف شده باشند و تا زمانی که از سوی برنامه یا کاربر فراخوانی نشده باشند ، اجرا نخواهند شد . مزیت این روش در این است ، که این اسکریپت ها قبل از اجرا توسط مرورگر لود شده اند . فراخوانی باید توسط یک اسکریپت دیگر در قسمت تگ < body > صورت بگیرد .
مثال: در مثال زیر یک اسکریپت ساده در ۲ حالت در قسمت تگ < head > صفحه تعریف شده است . در حالت اول به دلیل عدم فراخوانی تابع اسکریپت ، آن اسکریپت هیچ گاه اجرا نخواهد شد . اما در حالت دوم تابع ()hello توسط رویداد onclick ( کلیک ) دکمه فرمان فراخوانی شده و خروجی خود را نمایش می دهد . برای اجرای اسکریپت بر روی دکمه فرمان مثال کلیک نمایید :
حالت ۱ . در این حالت به دلیل عدم فراخوانی اسکریپت هیچ خروجی نداریم .
< html > < head > < title > Title of Page عنوان صفحه < /title > < script type="text/javascript" > function hello ( ) { document.write ( "Hello User . This script is placed in the head section ." ) } < /script > < /head > < body > محتویات صفحه < /body > </html>
حالت ۲ . در این حالت با فراخوانی اسکریپت توسط رویداد کلیک دکمه فرمان ، دستور آن اجرا می شود .
< html > < head > < title > Title of Page عنوان صفحه < /title > < script type="text/javascript" > function hello ( ) { document.write ( "Hello User . This script is placed in the head section . " ) } < /script > < /head > < body > محتویات صفحه < input value ="to view script Click me" id="Button1" type="button" onclick="hello( )" / > < /body > </html>
۳ ) در یک فایل خارجی JS :
در این حالت تمام اسکریپت های مورد نظر را در یک فایل خارجی متنی با پسوند JS ، تعریف کرده و سپس به وسیله تگ <script> در قسمت <head> صفحه ، بین آن فایل و صفحه لینک ایجاد می کنیم.
از این جالت معمولا در مواردی که بخواهیم کدهای اسکریپت را از محتویات صفحات HTML جدا کرده و یا از یک سری دستورات و توابع اسکریپتی مشترک در چند صفحه استفاده کنیم ، کاربرد دارد.
اسکریپت های این حالت باید در قالب توابع مختلف تعریف شده و تا زمانی که از سوی برنامه یا کاربر فراخوانی نشوند ، اجرا نخواهند شد.
مثال: در مثال زیر ابتدا یک اسکریپت در یک فایل خارجی به نام myscript.js تعریف کرده و سپس بین صفحه و آن فایل ارتباط ایجاد کرده ایم . تابع ( ) hello2 توسط رویداد کلیک دکمه فرمان فراخوانی و اجرا می شود:
متن فایل myscript.js
< script type="text/javascript" > function hello2 ( ) { document.write ( "This script is placed in an external Java Script file . " ) } < /script > Example < html > < head > < title > Title of Page عنوان صفحه < /title > < script type="text/javascript" src ="../myscript.js" > * ایجاد لینک بین صفحه و فایل اسکریپت * < /script > < /head > < body > محتویات صفحه < input value="to view script Click me" id="btnhello2" type="button" onclick="hello2( )" / > < /body > </html>
نکات مهم در کد نویسی جاوا اسکریپت :
۱) جاوا اسکریپت به بزرگ یا کوچک بودن حروف حساس است ( بر خلاف HTML ) :
در تعریف و نام گذاری توابع و متغیرها در جاوا اسکریپت باید به بزرگ یا کوچک بودن حروف کاملا دقت کرد . تابع با نام “MyFunction” با تابع “myfunction” و متغیر با نام “Matn” با متغیر با نام “matn” متفاوت هستند .
همچنین کلیه دستورات جاوا اسکریپت باید به صورت استاندارد تعیین شده ، با حروف بزرگ یا کوچک نوشته شود . عدم رعایت این نکته باعث اجرا نشدن دستور و بروز خطا در صفحه می شود . هر یک از دستورات و کلمات کلیدی در جاوا اسکریپت فقط به یک صورت ، که صورت استاندارد است باید نوشته شوند .
توجه : در مثال ها و کدهای بخش آموزش ، شکل صحیح نوشتاری کلیه دستورات نمایش داده شده است .
مثال ۱: در مثال زیر ۲ متغیر با نام های یکسان ، ولی متفاوت در بزرگ یا کوچک بودن حروف به نام های “Matn” و “matn” ایجاد و مقدار دهی شده اند . خروجی کد نشان می دهد که این دو متغیر کاملا با هم متفاوت هستند و هر یک مقدار مخصوص به خود را دارند :
<script type="text/javascript"> var matn = "This is a Variable ." ; var Matn = "This is another Variable ." ; document.write ( matn ) ; document.write ( Matn ) ; </script>
مثال ۲: شکل صحیح نوشتن متد چاپ خروجی در جاوا اسکریپت به صورت documnet.write است . در مثال زیر ابتدا دستور را به شکل نادرست و با حروف بزرگ به صورت Documnet.Write نوسته ایم ، که باعث ایجاد خطا در صفحه شده و خروجی نداریم . اما در حالت دوم آنرا به شکل صحیح نوشته ایم ، که خروجی درست را نیز مشاهده می کنیم :
حالت اول، شکل نادرست
<script type="text/javascript"> var Str = "An Investigation for Development" ; Document.Write ( Str ) ; </script>
حالت دوم، شکل صحیح
<script type="text/javascript"> var Str = "An Investigation for Development" ; document.write ( Str ) ; </script>
۲) جاوا اسکریپت فواصل خالی اضافی در کد نویسی را نادیده می گیرد:
به کار بردن فاصله خالی اضافی در بین کلمات کد های جاوا اسکریپت ، از سوی مرورگر نادیده گرفته شده و تاثیری ندارد . می توان برای خواناتر شدن برنامه ، بین کلمات فاصله اضافی ایجاد کرد.
نکته: بین دستورات و کلمات کلیدی باید حداقل یک فاصله وجود داشته باشد ، در اینجا منظور از فاصله اضافی ، بیش از یک کاراکتر فاصله است.
مثال: در مثال زیر یک تک کد را در حالت اول بدون فاصله و در حالت دوم با فاصله بین کلمات نوشته ایم . همانطور که در خروجی مشخص است ، این دو قطعه کد کاملا یکسان بوده و هیچ تفاوتی با هم ندارند:
<script type="text/javascript"> var StrName="Developer Studio"; document.write(StrName); </script> <script type="text/javascript"> var StrName = "Developer Studio" ; document.write ( StrName ) ; </script>
۳ ) نوشتن عبارت های متنی در بیش از یک خط :
در هنگام تعریف و استفاده از عبارت های متنی در دستوراتی نظیر document.write و … ، می توان ادامه متن را به کمک یک کاراکتر \ به سطر بعدی انتقال داد . این مسئله در زمانی که عبارت های متنی طولانی استفاده می شود ، کاربرد دارد.
مثال: در مثال زیر می خواهیم یک پیام را به کاربر اعلام کنیم . ولی به دلیل طولانی بودن متن پیام تصمیم گرفته ایم ، آن را در بخش کدنویسی در ۲ خط تعریف کنیم ، اما می بینیم که مرورگر در خروجی آنرا در یک خط نشان می دهد:
<script type="text/javascript"> document.write ( "Java Script is a client side language . \ It`s codes executes in the computer of visitor " ) ; </script>
۴ ) درج توضیحات ( comments ) مورد نظر در بخش کد نویسی:
در اسکریپت های نوشته شده به زبان جاوا اسکریپت ، می توان توضیحات مورد نظر را به صورت ویژه ای در درون کدها وارد کرد . این توضیحات به طور کامل از سوی مرورگر نادیده گرفته شده و در خروجی نمایش داده نمی شوند . از توضیحات معمولا برای نشانه گذاری یا ارائه توضیحاتی راجع به کدهای برنامه استفاده می شود.
دو نوع توضیح در جاوا اسکریپت می توان ایجاد کرد :
۱ . توضیحات یک خطی : این توضیات به کمک دو بک اسلش // به صورت زیر وارد می شود . توضیحات ارائه شده به این صورت حداکثر می تواند در یک خط باشد . به مثال زیر دقت کنید . در این مثال خط اول یک comment خط دوم یک دستور چاپ خروجی است . همانظور که در خروجی کد مشخص است ، دستور چاپ توسط مرورگر اجرا شده ولی comment نمایش دادده نمی شود:
<script type="text/javascript"> // this is a one line comment . navigator won`t show it . document.write ( "How to write a comment" ) ; </script>
۲ . توضیحات چند خطی : با استفاده از یک نماد */ در ابتدای اولین خط توضیحات و یک نماد /* در آخرین خط توضیحات ، می توان توضیحات چند خطی در اسکریپت ها وارد کرد . از این حالت برای ارائه توضیحات طولانی استفاده می شود . به مثال زیر دقت کنید . در این مثال هم یک دستور و یک comment چند خطی قرار داده شده است . دستور توسط مرورگر اجرا شده ، ولی comment نمایش داده نمی شود:
<script type="text/javascript"> /* this is a multi line comment . navigator won`t show it . We use it for long comments . It can be several lines */ document.write ( "How to write a multi line comment" ) ; </script>