شی Date :
از این شی برای دستکاری و کار با تاریخ و زمان استفاده می شود . به طور کلی هر متغیری از نوع تاریخ و زمان نمونه ای از شی Date خواهد بود .
خواص شی Date |
نحوه تعریف یک متغیر جدید از نوع Date :
برای تعریف یک متغیر جدید از نوع تاریخ و زمان از تابع Date ، به صورت کلی زیر استفاده می شود :
var نام متغیر
= new Date () ;
مثال :
var NowTime = new Date () ;
نکته 1 : هر متغیری از نوع Date ، که به روش فوق ایجاد شود ، زمان و تاریخ جاری سیستم در لحظه ایجاد خود را ، به عنوان مقدار پیش فرض در درون خود نگهداری می کند . این مقدار شامل مخخف نام روز جاری، مخفف نام ماه جاری ، شماره روز جاری در ماه ، سال جاری ، ساعت دقیق که به صورت ساعت ، دقیقه و ثانیه است و فرمت ساعت خواهد بود .
مثال : در مثال زیر یک متغیر به نام NowTime را به روش اشاره شده ایجاد و مقدار دهی کرده ایم . سپس به وسیله دستور document.write مقدار آن را بر روی صفحه نمایش داده ایم . این متغیر هر بار که صفحه مجددا بار گذاری شده و یا Refresh می شود ، مقدار آن دوباره به تاریخ و ساعت جاری سیستم Set شده و تغییر می کند . بنابراین مقدار آن ثابت نیست و با هر بار لود شدن صفحه و و اجرای مجدد اسکریت ، ساعت و تاریخ جدید جایگزین مقدار قبلی می شود . برای درک بهتر هر چند لحظه یکبار صفحه را Refresh کرده و به مقدار خروجی دقت کنید :
Example |
|
< script
type="text/javascript" > |
کد |
نکته 2 : همچنین می توان در هنگام تعریف یک
متغیر جدید از نوع Date ، یک تاریخ
مورد نظر را به عنوان تاریخ ذخیره شده در آن متغیر را در پرانتز جلوی تابع Date تعریف
کرد . در این صورت سیستم به صورت اتوماتیک ، تاریخ تعیین شده را به فرمت مورد
استفاده در جاوا اسکریپت تبدیل کرده و در متغیر ذخیره خواهد کرد .
مثال : در مثال
زیر ابتدا یک متغیر به نام MyDateرا ایجاد کرده و یک تاریخ را نیز به
عنوان مقدار برای آن در نظر گرفته ایم . سپس آن متغیر را بر روی صفحه در خروجی چاپ
کرده ایم . همانطور که می بینید ، مقدار خروجی برابر با مقدار تعیین شده است و
ارتباطی با تاریخ و ساعت جاری سیستم ندارد :
Example |
|
< script
type="text/javascript" > |
کد |
خواص شی Date :
خاصیت constructor :
این خاصیت ، نام تابع سازنده شی مورد نطر را بر می گرداند . تغبع سازنده ، تابعی است که در هنگام تعریف اولیه ، شی را به وجود آورده است . شکل کلی استفاده از این خاصیت به شرح زیر است :
Syntax |
object.constructor |
مثال : در مثال زیر با استفاده از تابع ( ) Date یک شی MyDate2 جدید به
نام txtname ایجاد کرده ایم . به وسیله دستور document.write ، نوع تابع
سازنده شی را نشان داده ایم :
نکته : توجه شود
شکل صحیح نوشتاری تابع Date با D بزرگ است .
Example |
|
< script
type="text/javascript" > |
کد |
شی Date :
در این بخش به معرفی متدهای شی Date می پردازیم . در قسمت قبل خواص این شی را بررسی کردیم .
متدهای شی Date :
متدهای شی Date در جدول زیر معرفی شده اند . برای دریافت اطلاعات راجع به هر کدام بر روی نام آن کلیک کنید :
نام متد |
شرح |
getDate ( ) |
این متد ، شماره روز جاری در ماه را بر می گرداند . |
getDay ( ) |
این متد ، شماره روز جاری در هفته را بر می گرداند . |
getMonth ( ) |
این متد ، شماره ماه جاری را بر می گرداند . |
getYear ( ) |
این متد ، شماره سال جاری را بر می گرداند . |
getFullYear ( ) |
این متد نیز ، شماره سال جاری را بر می گرداند . |
getHours ( ) |
این متد مقدار ساعت را بر می گرداند . |
getMinutes ( ) |
این متد شماره دقیقه را در یک متغیر زمانی بر می گرادند . |
getSeconds ( ) |
این متد شماره ثانیه ها را در یک متغیر زمانی بر می گرادند . |
getMilliseconds ( ) |
این متد شماره میلی ثانیه ها را در یک متغیر زمانی بر می گرادند . |
getTime ( ) |
این متد تعداد ثانیه های سپری شده از تاریخ اول ژانویه سال 1970 تا به امروز را بر می گرداند |
getTimezoneOffset ( ) |
این متد اختلاف زمانی بین زمان جاری سیتسم را با ساعت بین المللی گرینویپچ را بر حسب دقیقه بر می گرداند . |
parse ( ) |
این متد یک تاریخ را به صورت رشته ای دریافت کرده و تعداد میلی ثانیه های سپری شده از زمان اول ژانویه سال 1970 تا به امروز را بر می گرداند |
setDate ( ) |
این متد برای تغییر مقدار عددی تاریخ روز در یک متغیر زمانی استفاده می شود . |
setMonth ( ) |
این متد برای تغییر شماره ماه و تاریخ روز در یک متغیر زمانی استفاده می شود . |
setFullYear( ) |
این متد برای تغییر مقدار سال در یک متغیر زمانی استفاده می شود . |
setYear( ) |
این متد برای تغییر مقدار سال در یک متغیر زمانی استفاده می شود . |
setHours( ) |
این متد برای تغییر مقدار عددی ساعت در یک متغیر زمانی استفاده می شود . |
setMinutes( ) |
این متد برای تغییر مقدار عددی دقیقه در یک متغیر زمانی استفاده می شود . |
setSeconds( ) |
این متد برای تغییر مقدار عددی ثانیه در یک متغیر زمانی استفاده می شود . |
setMilliseconds( ) |
این متد برای تغییر مقدار عددی میلی ثانیه در یک متغیر زمانی استفاده می شود . |
setTime( ) |
این متد برای محاسبه و ایجاد یک تاریخ جدید ، به وسیله اضافه یا کم کردن تعداد معینی میلی ثانیه به تاریخ اول ژانویه سال 1970 استفاده می شود . |
toString( ) |
از این متد برای تبدیل یک متغیر زمانی به یک عبارت رشته ای استفاده می شود . |
متد ( ) getDate : این متد ، شماره روز جاری را در ماه تاریخ متغیر زمانی مورد استفاده را بر می گرداند . برای مثال اگر امروز روز هفدهم ماه جاری باشد ، عدد بازگشتی 17 خواهد بود .
مثال : در مثال زیر تاریخ جاری سیستم را توسط تابع () Date در متغیر MyDate ذخیره کرده ایم . سپس توسط متد getDate ، شماره روز جاری را بر روی صفحه نمایش داده ایم :
مثال 2 : همانطور که می دانید ، می توان به یک متغیر زمانی مقداری دلخواه و بدون ارتباط با تاریخ جاری سیستم داد . در صورت مقدار دهی و اعمال متد gatDate به یک متغیر ، این متد شماره روز تاریخ ذخیره شده را بر می گرداند . برابی مثال در کد زیر ، متغیر SomeDate را ابتدا مقدار دهی کرده و سپس شماره روز تاریخ آن را باز گردانده ایم :
متد ( ) getDay : این متد ، شماره روز جاری در هفته را بر می گرداند . خروجی حاصل از این متد عددی بین 0 تا 6 خواهد بود که شماره گذاری روزها از روز یکشنبه به ترتیب از صفر شروع می شود . بنابراین در این متد ، شماره روز یکشنبه 0 ، روز دوشنبه 1 ، روز سه شنبه 2 و الی آخر خواهد بود .
مثال : در مثال زیر تاریخ جاری سیستم را توسط تابع () Date در متغیر MyDay ذخیره کرده ایم . سپس توسط متد getDate ، شماره روز جاری را در هفته بر روی صفحه نمایش داده ایم . با توجه به توضیحات فوق ، امروز چه روزی است ؟ ! :
مثال 2 : در مثال زیر نیز تاریخ جاری سیستم را در یک متغیر به نام MyDay ذخیره کرده ایم . سپس با یک دستور switch بر حسب مقدار خروجی متد getDay ، نام روز هفته را در خروجی چاپ کرده ایم . حالا امروز چند شنبه است ؟ ! ! :
متد ( ) getMonth : این متد ، شماره ماه جاری در متغیر زمانی را بر می گرداند . خروجی حاصل از این متد عددی بین 0 تا 11 خواهد بود ، که شروع شماره گذاری ماه ها از ماه ژانویه ( January ) است و به ترتیب ادامه می یابد . بنابراین در این متد شماره ماه های میلادی به ترتیب زیر خواهد بود : 1=January , 2 = February , 3 = March و ... . نکته : در واقع این متد به جای نمایش نام ماه ، یک عدد معین را به جای نام آن بر می گرداند ، که برای نمایش نام واقعی ماه باید ار روش های برنامه نویسی استفاده کرد . به مثال 2 در این قسمت توجه کنید .
مثال : در مثال زیر تاریخ جاری سیستم را توسط تابع () Date در متغیر MyMonth ذخیره کرده ایم . سپس توسط متد getMonth ، شماره ماه جاری را بر روی صفحه نمایش داده ایم . با توجه به توضیحات فوق ، الان در چه ماهی هستیم ؟ ! :
مثال 2 : در مثال زیر نیز تاریخ جاری سیستم را در یک متغیر به نام MyMonth2 ذخیره کرده ایم . سپس با یک دستور switch بر حسب مقدار خروجی متد getDay ، نام ما ه جاری در خروجی چاپ کرده ایم . حالا این ماه چه ماهی است ؟ ! ! :
متد ( ) getYear و getFullYear : این متد ، مقدار سال جاری در
متغیر زمانی مورد استفاده را بر می گرداند . مفدار بازگشتی این تابع برای سال
های بین 1900 تا 1999 به صورت یک عدد دو رقمی است ، که شامل دو عدد سمت راست سال
است . برای سال های قبل از 1900 و بعد از 1999 ، این تابع مقدار سال را به طور
کامل بر می گرداند .
مثال : در مثال زیر تاریخ جاری سیستم را توسط تابع () Date در متغیر MyYaer ذخیره کرده ایم . سپس توسط متد getYear ، شماره سال جاری را بر روی صفحه نمایش داده ایم . با توجه به توضیحات فوق ، الان در چه سالی هستیم ؟ ! :
مثال : در مثال زیر ابتدا متغیر زمانی MyDate را مقدار دهی کرده ایم و سپس توسط متد ( ) getYear ، مقدار سال آن را در خروجی چاپ کرده ایم
مثال : دراین مثال متغیر زمانی MyDate را با یک تاریخ جدید که مربوط به سال 2007 است ، مجددا مقدار دهی کرده ایم . همانطور که می بینید ، مقدار بازگشتی یک عدد 4 رقمی ( نه 2 رقمی ) است :
متد ( ) getFullYear : مثال های فوق را با متد getFullYear باز نویسی کرده ایم . بین این متد با متد getYear اختلاف چندانی وجود ندارد . اختلاف اصلی در این است که در متد getFullYear برای کلیه سال ها ( حتی قبل از 1999 ) خروجی به صورت عدد 4 رقمی است : مثال : در مثال زیر ابتدا متغیر زمانی MyDate را مقدار دهی کرده ایم و سپس توسط متد ( ) getFullYear ، مقدار سال آن را در خروجی چاپ کرده ایم :
مثال : دراین مثال متغیر زمانی MyDate را با یک تاریخ جدید که مربوط به سال 2007 است ، مجددا مقدار دهی کرده ایم . همانطور که می بینید ، مقدار بازگشتی یک عدد 4 رقمی ( نه 2 رقمی ) است :
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
متد ( ) getHours : این متد ساعت کامل ذخیره شده در متغیر زمانی را بر می گرداند . خروجی این تابع عددی بین 0 تا 23 خواهد بود .
مثال : در مثال زیر تاریخ جاری سیستم را توسط تابع () Date در متغیر MyHours ذخیره کرده ایم . سپس توسط متد getHours ، ساعت جاری سیستم را بر روی صفحه نمایش داده ایم . اکنون ساعت چند است ؟ !:
مثال 2 : همانطور که می دانید ، می توان به یک متغیر زمانی مقداری دلخواه و بدون ارتباط با تاریخ جاری سیستم داد . در صورت مقدار دهی و اعمال متد gatHours به یک متغیر ، این متد ساعت ذخیره شده را بر می گرداند . برای مثال در کد زیر ، متغیر SomeHours را ابتدا مقدار دهی کرده و سپس ساعت ذخیره شده در آن را را باز گردانده ایم :
متد ( ) getMinutes : این متد ، دقیقه ذخیره شده در متغیر زمانی مورد استفاده را بر می گرداند . خروجی این تابع عددی بین 0 تا 59 است :
مثال : در مثال زیر تاریخ جاری سیستم را توسط تابع () Date در متغیر MyMinutes ذخیره کرده ایم . سپس توسط متد getMinutes ، دقیقه جاری سیستم را بر روی صفحه نمایش داده ایم :
مثال 2 : همانطور که می دانید ، می توان به یک متغیر زمانی مقداری دلخواه و بدون ارتباط با تاریخ جاری سیستم داد . در صورت مقدار دهی و اعمال متد getMinutes به یک متغیر ، این متد دقیقه ذخیره شده را بر می گرداند . برای مثال در کد زیر ، متغیر SomeMinutes را ابتدا مقدار دهی کرده و سپس دقیقه ذخیره شده در آن را باز گردانده ایم :
متد ( ) getSeconds : این متد ، ثانیه زمان ذخیره شده در متغیر زمانی را بر می گرداند . خروجی این تابع عددی بین 0 تا 59 خواهد بود :
مثال : در مثال زیر تاریخ جاری سیستم را توسط تابع () Date در متغیر MySeconds ذخیره کرده ایم . سپس توسط متد getSeconds ، ثانیه ساعت سیستم را بر روی صفحه نمایش داده ایم .
مثال 2 : همانطور که می دانید ، می توان به یک متغیر زمانی مقداری دلخواه و بدون ارتباط با تاریخ جاری سیستم داد . در صورت مقدار دهی و اعمال متد gatSeconds به یک متغیر ، این متد ثانیه ذخیره شده را بر می گرداند . برای مثال در کد زیر ، متغیر SomeSeconds را ابتدا مقدار دهی کرده و سپس ثانیه ذخیره شده در آن را را باز گردانده ایم :
متد ( ) getMilliseconds : این متد ، مقدار میلی ثانیه ذخیره شده در متغیر زمانی را برمی گرداند . خروجی این تابع عددی بین 0 تا 999 است :
مثال : در مثال زیر تاریخ جاری سیستم را توسط تابع () Date در متغیر MyMilliseconds ذخیره کرده ایم . سپس توسط متد getMilliseconds ، میلی ثانیه جاری سیستم را بر روی صفحه نمایش داده ایم . با هر بار Refresh کردن صفحه ، این اسکریپت مجددا اجرا شده و مقدار جدید میلی ثانیه را نمایش می دهد :
مثال 2 : همانطور که می دانید ، می توان به یک متغیر زمانی مقداری دلخواه و بدون ارتباط با تاریخ جاری سیستم داد . در صورت مقدار دهی و اعمال متد gatMilliseconds به یک متغیر ، این متد ساعت ذخیره شده را بر می گرداند . برای مثال در کد زیر ، متغیر SomeMilliseconds را ابتدا مقدار دهی کرده و سپس میلی ثانیه ذخیره شده در آن را باز گردانده ایم :
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
متد ( ) getTime : این متد تعداد میلی ثانیه های
سپری شده از زمان اول ژانویه ( January ) سال 1970 تا به امروز را بر می گرداند .
مثال : در مثال زیر تاریخ جاری سیستم را توسط تابع () Date در متغیر HowMany ذخیره کرده ایم . سپس با متد getTime ، تعداد میلی ثانیه های سپری شده از تاریخ اول ژانویه سال 1970 را تا به الآن محاسبه کرده و در خروجی نمایش داده ایم . با هر بار Refresh کردن صفحه ، به دلیل گذشت بیشتر زمان ، تعداد میلی ثانیه ها افزایش می یابند :
مثال 2 : همانطور که می دانید ، می توان به یک متغیر زمانی مقداری دلخواه و بدون ارتباط با تاریخ جاری سیستم داد . در این مثال متغیر HowMnay را با یک تاریخ از پیش تعیین شده ، مقدار دهی کرده ایم . سپس با متد getTime ، تعداد میلی ثانیه های سپری شده از تاریخ اول ژانویه سال 1970 را تا تاریخ متغیر محاسبه کرده و در خروجی نمایش داده ایم . توجه شود که در این حالت تاریخ انتها ، تاریخ متغیر در نظر گرفته می شود ، نه تاریخ جاری سیستم :
متد ( ) getTimezoneOffset : این متد اختلاف زمانی بین زمان
محلی ( زمان جاری سیستم کاربر ) با زمان بین المللی به وقت گرینویچ ( GMT ) را بر
حسب دقیقه بر می گرداند .
مثال : در مثال زیر ابتدا تاریخ جاری سیستم را توسط تابع () Date در متغیر RealTime ذخیره کرده و سپس توسط متد getTimeZoneOffset اختلاف آن را با زمان بین المللی محاسبه کرده و در خروجی نمایش داده ایم . اگر شما در ایران باشید ، مقدار این اختلاف زمانی بر حسب ساعت تهران ، 270 - دقیقه ( 3:30 ساعت ) خواهد بود :
متد ( ) parese : این متد یک تاریخ را به صورت عبارت رشته ای دریافت کرده و تعداد میلی ثانیه های سپری شده از زمان اول ژانویه ( January ) سال 1970 را تا تاریخ ارائه شده محاسبه کرده و به عنوان خروجی نمایش می دهد .
مثال : در مثال زیر یک تاریخ فرضی را در قالب یک عبارت رشته ای به متد parse ارجاع داده ایم و این متد تعداد میلی ثانیه های سپری شده از تاریخ اول ژانویه سال 1970 تا آن تاریخ را محاسبه کرده و در خروجی نمایش داده است :
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
متد ( ) setDate : این متد برای تغییر دادن مقدار تاریخ روز در یک متغیر زمانی استفاده می شود . برای مثال شما می خواهید که تاریخ روز در یک متغیر زمانی را به 17 تغییر دهید .
این متد یک عدد را توسط خاصیت day به عنوان پارامتر دریافت کرده و آن را جایگزین تاریخ روز در متغیر زمانی مورد استفاده می کند . برای مثال اگر عدد 25 وارد شود ، عدد تاریخ روز در متغیر زمانی به 25 تغییر می کند . مثال : در مثال زیر ابتدا متغیر زمانی Mydate مقدار دهی شده است . سپس توسط متد setDate مقدار تاریخ روز آن به یک مقدار جدید تغییر یافته و سپس مقدار جدید در خروجی نمایش داده شده است :
متد ( ) setMonth : این متد برای تغییر تاریخ روز و ماه در یک متغیر زمانی استفاده می شود . برای مثال شما می خواهید تاریخ روز را در یک متغیر زمانی به چهاردهم ماه و ماه آن را به June تغییر دهید .
این متد دو عدد را به عنوان
پارامتر ورودی دریافت می کند . مثال : در مثال زیر ابتدا متغیر زمانی Mydateمقدار دهی شده است . سپس توسط متد setMonth و تعیین هر دو پارامتر آن ، نام ماه و تاریخ روز آن متغیر تغییر داده شده است و سپس مقدار جدید آن در خروجی چاپ شده است :
مثال : در مثال زیر نیز ابتدا متغیر زمانی Mydateمقدار دهی شده است . سپس فقط با تعیین پارامتر لازم برای تغییر ماه متغیر توسط متد setMonth ، نام ماه آن متغیر تغییر داده شده است و سپس مقدار جدید آن در خروجی چاپ شده است . بنابراین در این مثال مقداری برای پارامتر دوم این متد یعنی تاریخ روز در نظر گرفته نشده است :
متد ( ) setFullYear : این متد برای تغییر دادن مقدار سال در یک متغیر زمانی استفاده می شود . برای مثال شما می خواهید که مقدار سال را در یک متغیر زمانی را از 1997 به 2008 تغییر دهید .
این متد 1 پارامتر اجباری و 2
پارامتر اختیاری دارد . مثال : در مثال زیر ابتدا متغیر زمانی Mydate مقدار دهی شده است . سپس توسط متد setDate مقدار سال آن به یک مقدار جدید تغییر یافته و سپس مقدار جدید در خروجی نمایش داده شده است . در این مثال فقط پارامتر year در متد مقدار دهی شده و بقیه پارامترها مقدار دهی نشده اند . بنابراین مقدار آنها نیز ثابت مانده است:
متد ( ) setYear : این متد برای تغییر دادن مقدار
سال در یک متغیر زمانی استفاده می شود . برای مثال شما می خواهید که مقدار سال را
در یک متغیر زمانی را از 1997 به 2008 تغییر دهید . عملکرد این متد کاملا شبیه
متد setFullYear است ، ولی کابرد آن بیشتر برای تاریخ های قبل از سال 2000 است و
به جای آن بیشتر از متد setFullYear استفاده می شود .
این متد فقط دارای 1 پارامتر
اجباری است . مثال : در مثال زیر ابتدا متغیر زمانی Mydate مقدار دهی شده است . سپس توسط متد setYear مقدار سال آن به یک مقدار جدید تغییر یافته و سپس مقدار جدید در خروجی نمایش داده شده است :
|
متد ( ) setHours : این متد برای تغییر دادن مقدار عددی ساعت در یک متغیر زمانی استفاده می شود . برای مثال شما می خواهید که مقدار ساعت در یک متغیر زمانی را از 7 به 11 تغییر دهید .
این متد دارای 1 پارامتر اجباری و
3 پارامتر اختیاری است . مثال : در مثال زیر ابتدا متغیر زمانی MyTime مقدار دهی شده است . سپس توسط متد setHours و تعیین هر 4 پارامتر لازم مقدار ساعت ، دقیقه ، ثانیه و میلی ثانیه آن به مقادیر مورد نظر تغییر یافته و سپس مقدار جدید در خروجی نمایش داده شده است :
متد ( ) setMinutes : این متد برای تغییر دادن مقدار عددی دقیقه در یک متغیر زمانی استفاده می شود . برای مثال شما می خواهید که مقدار دقیقه در یک متغیر زمانی را از 23 به 34 تغییر دهید .
این متد دارای 1 پارامتر اجباری و
2 پارامتر اختیاری است . مثال : در مثال زیر ابتدا متغیر زمانی MyTime مقدار دهی شده است . سپس توسط متد setMinutes و تعیین هر 3 پارامتر لازم مقدار دقیقه ، ثانیه و میلی ثانیه آن به مقادیر مورد نظر تغییر یافته و سپس مقدار جدید در خروجی نمایش داده شده است :
متد ( ) setSeconds : این متد برای تغییر دادن مقدار عددی ثانیه در یک متغیر زمانی استفاده می شود . برای مثال شما می خواهید که مقدار ثانیه در یک متغیر زمانی را از 53 به 21 تغییر دهید .
این متد دارای 1 پارامتر اجباری و
1 پارامتر اختیاری است . مثال : در مثال زیر ابتدا متغیر زمانی MyTime مقدار دهی شده است . سپس توسط متد setSeconds و تعیین هر 2 پارامتر ممکن مقدار ، ثانیه و میلی ثانیه آن به مقادیر مورد نظر تغییر یافته و سپس مقدار جدید در خروجی نمایش داده شده است :
متد ( ) setMilliseconds : این متد برای تغییر دادن مقدار عددی میلی ثانیه در یک متغیر زمانی استفاده می شود . برای مثال شما می خواهید که مقدار میلی ثانیه در یک متغیر زمانی را از 530 به 210 تغییر دهید .
این متد فقط دارای 1 پارامتر
اجباری است . مثال : در مثال زیر ابتدا متغیر زمانی MyTime مقدار دهی شده است . سپس توسط متد setMilliseconds و تعیین پارامتر لازم مقدار میلی ثانیه آن به مقدار مورد نظر تغییر یافته و سپس مقدار جدید در خروجی نمایش داده شده است :
متد ( ) setTime : از این متد برای محاسبه و ایجاد یک تاریخ و زمان جدید ، به وسیله اضافه یا کم کردن تعداد معینی میلی ثانیه به تاریخ اول ژانویه ( January ) سال 1970 استفاده می شود .
این متد فقط دارای 1 پارامتر
اجباری است . مثال : در مثال زیر توسط متد setTime به متغیر MyTime به تعداد مورد نظر ( با وارد کردن یک عدد مثبت ) میلی ثانیه اضافه کرده ایم و سپس تاریخ جدید به وجود آمده را در خروجی نمایش داده ایم :
مثال : در مثال زیر کاربرد عدد منفی در متد setTime نمایش داده شده است . در این مثال توسط متد setTime از متغیر MyTime به تعداد مورد نظر ( با وارد کردن یک عدد منفی ) میلی ثانیه کم کرده و سپس تاریخ جدید به وجود آمده را در خروجی نمایش داده ایم :
متد ( ) tostring : این متد یک متغیر زمانی ( Date ) را دریافت کرده و آن را به یک متغیر رشته ای ( متنی ) تبدیل می کند . سپس می توان از آن به صورت یک عبارت رشته ای استفاده کرد .
این متد دارای پارامتر نیست . مثال : در مثال زیر ابتدا متغیر زمانی MyTime را مقدار دهی کرده و سپس توشط متد tostring آن را به یک عبارت رشته ای تبدیل و در متغیر Str ذخیره کرده ایم . سپس آن را در خروجی نمایش داده ایم :
|
در این بخش به معرفی متدهای شی string می پردازیم . در قسمت قبل خواص این شی را بررسی کردیم .
متدهای شی :string
متدهای شی string در جدول زیر معرفی شده اند . برای دریافت اطلاعات راجع به هر کدام بر روی نام آن کلیک کنید :
نام خاصیت |
شرح |
big ( ) |
برای نمایش متن یک متغیر رشته ای با اندازه بزرگتر استفاده می شود . |
blink ( ) |
برای نمایش متن یک متغیر رشته ای به صورت چشمک زن استفاده می شود . |
bold ( ) |
برای نمایش متن یک متغیر رشته ای به صورت توپر ( درشت ) استفاده می شود . |
charAt ( ) |
برای نمایش مقدار یک حرف ( کاراکتر ) مورد نظر در یک متغیر رشته ای اسفاده می شود . |
charCodeAt ( ) |
برای نمایش کد اسکی یک حرف ( کاراکتر ) مورد نظر در یک متغیر رشته ای اسفاده می شود . |
concat ( ) |
از این متد برای چسباندن و اضافه کردن دو یا چند متغیر رشته ای به هم استفاده می شود . |
fixed ( ) |
این متد ، برای نمایش متن متغیر رشته ای با قلم ی ( font ) شبیه نوشته های تلگراف استفاده می شود . |
fontcolor ( ) |
از این متد ، برای نمایش متن یک متغیر رشته ای به یک رنگ دلخواه استفاده می شود . |
fontsize ( ) |
از این متد ، برای نمایش یک متغیر رشته ای در یک اندازه خاص استفاده می شود . |
indexOf ( ) |
این متد ، شماره مکان قرار گیری اولین نمونه یک حرف یا کلمه را در یک متغیر متنی را بر می گرداند . |
italics ( ) |
از این متد ، برای نمایش متن یک متغیر رشته ای به صورت کج استفاده می شود . |
lastIndexOf ( ) |
این متد ، شماره مکان قرار گیری آخرین نمونه یک حرف یا کلمه را در یک متغیر متنی را بر می گرداند . |
link ( ) |
از این متد برای تبدیل متن یک متغیر رشته ای به یک پیوند ( HyperLink ) استفاده می شود . |
match ( ) |
ازاین متد ، برای جستجوی یک حرف یا کلمه در یک متغیر متنی استفاده می شود . |
replace ( ) |
از این متد برای جایگزینی یک حرف یا کلمه خاص در یک متغیر متنی و جایگزینی آن با یک مقدار جدید استفاده می شود . |
search ( ) |
از این متد برای جستجو یک حرف یا کلمه خاص در یک متغیر متنی استفاده می شود . |
slice ( ) |
از این متد برای جستجو یک حرف یا کلمه خاص در یک متغیر متنی استفاده می شود . |
small ( ) |
از این متد برای متن یک متغیر متنی با اندازه ای کوچکتر از حد معمول استفاده می شود . |
splite ( ) |
از این متد برای تقسیم کردن یک متغیر متنی به آرایه ای از کاراکترها استفاده می شود . |
strike ( ) |
از این متد برای نماژش متن یک متغیر متنی با یک خط کشیده شده بر روی آن استفاده می شود . |
sub ( ) |
از این متد برای نمایش یک متن به صورت اندیس استفاده می شود . |
substr ( ) |
از این متد برای برش تعداد معینی از کاراکترهای یک متغیر متنی استفاده می شود . |
substring ( ) |
از این متد برای برش تعداد معینی از کاراکترهای یک متغیر متنی بین دو نقطه مشخص استفاده می شود . |
sup ( ) |
از این متد برای نمایش یک متن به صورت زیر نویس استفاده می شود . |
toLowerCase ( ) |
از این متد برای نمایش متن یک متغیر رشته ای با حروف کوچک استفاده می شود . |
toUpperCase ( ) |
از این متد برای نمایش متن یک متغیر رشته ای با حروف بزرگ استفاده می شود . |
متد های شی string
متد ( ) big :
از این متد برای نمایش متن یک متغیر رشته ای با اندازه ای بزرگتر استفاده می شود .
Syntax |
stringobject.big ( ) |
مثال : در مثال زیر یک متغیر رشته ای به نام matn را با یکبار به صورت ساده و بار دیگر با استفاده از متد big نمایش داده ایم . به تفاوت 2 حالت دقت کنید :
Example |
||
حالت اول بدون متد big |
حالت دوم با متد big |
|
<script
type ="text/javascript"> |
<script type ="text/javascript"> |
کد |
متد ( ) blink :
این متد برای نمایش یک متغیر متنی ،
به صورت چشمک زن بر روی صفحه استفاده می شود .
نکته : متاسفانه
این متد در مرورگر Internet Explorer ( پر کاربردترین مرورگر ! ) ،
پشتیبانی نمی شود ، ولی در سایر مرورگر ها از جمله NetScape , Firefox و Opera پشتیانی می شود . بنابرین متن خروجی
مثال این قسمت فقط در مرورگرهای اشاره شده چشمک خواهد زد .
Syntax |
stringobject.blink( ) |
متد bold() :
از این متد برای نمایش یک متغیر رشته ، به صورت توپر ( درشت ) استفاده می شود . عملکرد این متد همانند تگ < b > در HTML است .
Syntax |
stringobject.bold( ) |
مثال : در مثال زیر یک متغیر رشته ای به نام matn را یکبار به صورت معمولی و بار دیگر با متد bold نمایش داده ایم . به تفاوت دقت کنید :
Example |
||
حالت اول بدون متد bold |
حالت دوم با متد bold |
|
<script
type ="text/javascript"> |
<script
type ="text/javascript"> |
کد |
متد charAT() :
این متد ، مقدار یک حرف ( کاراکتر )
در یک متغیر متنی ، که شماره آن را توسط خاصیت index تعیین می کنیم ، را بر می گرداند .
نکته : شماره
گذاری حروف یک عبارت رشته ای در جاوا اسکریپت ، از سمت چپ بوده و از شماره گذاری
از عدد صفر شروع می شود . بنابراین در کلمه ای مثل "Java
Script" حرف
شماره 2 ، حرف v و شماره 7 حرف c خواهد بود .
نکته 2 : فاصله
خالی بین حروف نیز یک کاراکتر حساب شده و دارای شماره خواهد بود .
Syntax |
stringobject.charAt
( Index ) |
مثال : در مثال زیر یک متغیر رشته ای به نام matn را ایجاد و مقدار دهی کرده ایم . سپس حروف شماره 3 و 9 آن را به کمک متد charAt نمایش داده ایم :
Example |
|
<script
type ="text/javascript"> |
کد |
متد charCodeAt() :
این متد ، کد اسکی یک حرف ( کاراکتر
) در یک متغیر متنی ، که شماره آن را توسط خاصیت index تعیین می کنیم ، را بر می گرداند .
نکته : شماره
گذاری حروف یک عبارت رشته ای در جاوا اسکریپت ، از سمت چپ بوده و از شماره گذاری
از عدد صفر شروع می شود . بنابراین در کلمه ای مثل "Java
Script" حرف
شماره 2 ، حرف v و شماره 7 حرف c خواهد بود .
نکته 2 : فاصله
خالی بین حروف نیز یک کاراکتر حساب شده و دارای شماره خواهد بود .
Syntax |
stringobject.charCodeAt
( Index ) |
مثال : در مثال زیر یک متغیر رشته ای به نام matn را ایجاد و مقدار دهی کرده ایم . سپس کد اسکی حروف شماره 3 و 9 آن را به کمک متد charCodeAt نمایش داده ایم :
Example |
|
<script
type ="text/javascript"> |
کد |
متد fixed() :
این متد ، برای نمایش متن متغیر رشته ای با قلم ی ( font ) شبیه نوشته های تلگراف استفاده می شود . عملکرد این متد همانند تگ < tt > یا تگ < code > در HTML است .
Syntax |
stringobject.fixed ( ) |
مثال : در مثال زیر یک متغیر رشته ای به نام matn را در حالت اول به صورت ساده و در حالت دوم با متد fixed به کار برده ایم . به تفاوت در روش دقت کنید :
Example |
||
حالت اول بدون متد fixed |
حالت دوم با متد fixed |
|
<script
type ="text/javascript"> |
<script
type ="text/javascript"> |
کد |
متد fontcolor() :
از این متد ، برای نمایش متن یک
متغیر رشته ای به یک رنگ دلخواه استفاده می شود . رنگ مورد نظر توسط خاصیت color تعیین می
شود .
تعیین رنگ می
تواند به یکی از 3 روش زیر صورت بگیرد :
( مقدار رنگ قرمز ، مقدار رنگ سبز ، مقدار رنگ آبی ) rgb
این تابع مقدار 3 رنگ را با هم ترکیب کرده و یک رنگ را
ایجاد می کند .که مقدار رنگ توسط عددی بین 0 تا 255 تعیین می شود ، که هر چه عدد
بزرگتر باشد میزان آن رنگ در کل رنگ بیشتر خواهد بود .
Example : rgb (10,65,232)
Example : #08FF00
Syntax |
stringobject.fontcolor(
color ) |
مثال : در مثال زیر سه متغیر رشته ای را با متد fontcolor ، هر کدام را یکی از 3 روش فوق به صورت رنگی در خروجی نمایش داده ایم : :
Example |
|
<script
type ="text/javascript"> |
کد |
متد fontsize() :
از این متد ، برای نمایش یک متغیر رشته ای در یک اندازه خاص استفاده می شود . اندازه مورد نظر توسط خاصیت size در تعیین شده و می تواند عددی بین 1 تا 7 باشد . با بزرگتر شدن عدد ، سایز نوشته نیز افزایش می یابد .
Syntax |
stringobject.fontsize
( size ) |
مثال : در مثال زیر یک متغیر رشته ای را با متد fontsize در 2 اندازه متفاوت در خروجی نمایش داده ایم :
Example |
|
<script
type ="text/javascript"> |
کد |
متد italics() :
از این متد برای نمایش متن یک متغیر رشته ای ، به صورت کج ( italics ) استفاده می شود . عملکرد این متد همانند تگ < i > یا تگ < em > در HTML است .
Syntax |
stringobject.italics ( ) |
مثال : در مثال زیر یک متغیر رشته ای به نام matn را یکبار به صورت معمولی و بار دیگر با متد italics نمایش داده ایم . به تفاوت دقت کنید :
Example |
||
حالت اول بدون متد italics |
حالت دوم با متد italics |
|
<script
type ="text/javascript"> |
<script
type ="text/javascript"> |
کد |
متد ( ) indexOf : این متد شماره مکان قرار گیری
اولین نمونه یک حرف یا کلمه خاص مورد نظر در یک متغیر رشته ای ، را بر می گرداند
. در این متد حرف یا کلمه مورد نظر توسط خاصیت searchvalue تعیین می
شود . همچنین می توان مکان شروع جستجو در متغیر را نیز به وسیله خاصیت fromindex تعیین کرد
. دراین صورت محل آغاز جستجو به جای اول متغیر ، از کاراکتر تعیین شده خواهد بود
.
مثال : در مثال به وسیله متد indexOf به جستجوی یک حرف و دو عبارت در متغیر matn پرداخته و نتایج را در خروجی نشان داده ایم . به دلیل عدم وجود کلمه ".ir" در متغیر رشته ای مثال ، نتیجه خروجی 1- بوده است . در آخر هم به جستجو حرف e در شرایطی که شروع جستجو از کاراکتر شماره 5 تعیین شده ، پرداخته ایم :
متد ( ) lastIndexOf : این متد شماره مکان قرار گیری
آخرین نمونه یک حرف یا کلمه خاص مورد نظر در یک متغیر رشته ای ، را بر می گرداند
. در این متد حرف یا کلمه مورد نظر توسط خاصیت searchvalue تعیین می
شود . همچنین می توان شماره مکان یک کاراکتر را نیز به وسیله خاصیت fromindex به متد
اعلام کرد ، که عملیات جستجو از سمت راست به چپ ( بر عکس ) ، براساس مکان آن کاراکتر
صورت بگیرد .
مثال : در مثال به وسیله متد lastIndexOf به جستجوی یک حرف و دو عبارت در متغیر matn پرداخته و نتایج را در خروجی نشان داده ایم . به دلیل عدم وجود کلمه ".ir" در متغیر رشته ای مثال ، نتیجه خروجی 1- بوده است . در آخر هم به جستجو حرف e در شرایطی که شروع جستجو از کاراکتر شماره 5 تعیین شده ، پرداخته ایم :
|
متد link() :
این متد برای نمایش متن یک متغیر رشته ای ، به صورت یک پیوند ( Hyperlink ) روی صفحه استفاده می شود . عماکرد این متد همانند تگ < a > در HTML است . آدرس صحفه یا فایل مقصد پیوند به وسیله خاصیت url تعیین می شود .
Syntax |
stringobject.link
( url ) |
مثال : در مثال زیر یک متغیر رشته ای به نام matn را با متد link یه صورت یک پیوند در خروجی نمایش داده ایم . مقصد پیوند نیز صفحه اصلی سایت تعیین شده است :
Example |
|
<script
type ="text/javascript"> |
کد |
متد: match()
این متد ، جهت جستجو برای وجود یا
عدم وجود یک حرف یا کلمه خاص در یک مغیر رشته ای استفاده می شود . عملکرد این متد
بسیار شبیه متد indexOf است ، با این تفاوت که به جای شماره
مکان قرا گیری حرف یا کلمه مورد جستجو ، خود آن را بر می گرداند .
کلمه یا حرف
مورد نظر توسط خاصیت serchvalue تعیین می شود .
نکته 1 : متد match به بزرگ
یا کوچک بودن حروف حساس است .
نکته 2 : چنانچه
حرف یا کلمه مورد جستجو در متغیر رشته ای وجود نداشته باشد ، مقدار بازگشتی null خواهد
بود .
Syntax |
stringobject.match
( searchvalue ) |
مثال : در مثال به وسیله متد match به جستجوی یک حرف و دو عبارت در متغیر matn پرداخته و نتایج را در خروجی نشان داده ایم . به دلیل عدم وجود کلمه ".ir" در متغیر رشته ای مثال ، نتیجه خروجی null بوده است .
Example |
|
<script
type ="text/javascript"> |
کد |
متد replace() :
از این متد ، برای جستجو یک حرف یا کلمه خاص مورد نظر در یک متغیر رشته ای و جایگزینی آن با یک مقدار جدید استفاده می شود . حرف یا کلمه مورد جستجو توسط خاصیت findstring و مقدار جایگزین توسط خاصیت newstring تعیین می شود .
Syntax |
stringobject.replace
( findatring , newstring ) * findstring = کلمه یا حرف
مورد جستجو |
این متد می تواند با 2 پارامتر اختیاری به شرح زیر استفاده شود :
مثال : در مثال زیر یک متغیر رشته ای به نام ex را ایجاد و مقدار دهی کرده ایم . سپس با استفاده از متد replace کلمه Java را با #C عوض کرده و خروجی جدید را بر روی صفحه نشان داده ایم . به دلیل عدم به کار بردن پارامتر g فقط اولین مورد کلمه Java با #C عوض شده و مرد دوم بدون تغییر باقی مانده است :
Example |
|
<script
type ="text/javascript"> |
کد |
مثال 2 : استفاده از پارامتر g
مثال قبل را با
اضافه کردن پارامتر g بازنویسی کرده ایم . در این حالت می
بینیم که هر دو مورد کلمه Java با #C عوض شده است :
Example |
|
<script
type ="text/javascript"> |
کد |
مثال 3 : استفاده از پارامتر i و g به صورت
همزمان
مثال قبل را با
استفاده همزمان از در پارامتر i و g بازنویسی کرده ایم . در این حالت می
بینیم که هر دو مورد کلمه Java با #C عوض شده و همچنین این متد به بزرگی
و کوچکی حروف حساس نیست . این بار در کد دستوری مثال کلمه جاوا را با حروف کوچک و
به صورت java نوشته
ایم .
Example |
|
<script
type ="text/javascript"> |
کد |
متد ( ) search : این متد ، جهت جستجو برای وجود یا
عدم وجود یک حرف یا کلمه خاص در یک مغیر رشته ای استفاده می شود . عملکرد این
متد بسیار شبیه متد match است ، با این تفاوت که این متد را می توان با پارامتر i به کار برد
. به کار بردن پارامتر i با این متد باعث عدم حساسیت آن ، به بزرگ یا کوچک بودن حروف می
شود .
مثال : در مثال به وسیله متد match به جستجوی یک حرف و دو عبارت در متغیر matn پرداخته و نتایج را در خروجی نشان داده ایم . توضیحات مثال :
|
||||||||||||||||||||
متد ( ) match : این متد ، جهت جستجو برای وجود یا
عدم وجود یک حرف یا کلمه خاص در یک مغیر رشته ای استفاده می شود . عملکرد این
متد بسیار شبیه متد indexOf است ، با این تفاوت که به جای شماره مکان قرا گیری حرف یا کلمه
مورد جستجو ، خود آن را بر می گرداند .
مثال : در مثال به وسیله متد match به جستجوی یک حرف و دو عبارت در متغیر matn پرداخته و نتایج را در خروجی نشان داده ایم . به دلیل عدم وجود کلمه ".ir" در متغیر رشته ای مثال ، نتیجه خروجی null بوده است .
متد ( ) replace : از این متد ، برای جستجو یک حرف یا کلمه خاص مورد نظر در یک متغیر رشته ای و جایگزینی آن با یک مقدار جدید استفاده می شود . حرف یا کلمه مورد جستجو توسط خاصیت findstring و مقدار جایگزین توسط خاصیت newstring تعیین می شود .
این متد می تواند با 2 پارامتر اختیاری به شرح زیر استفاده شود :
مثال : در مثال زیر یک متغیر رشته ای به نام ex را ایجاد و مقدار دهی کرده ایم . سپس با استفاده از متد replace کلمه Java را با #C عوض کرده و خروجی جدید را بر روی صفحه نشان داده ایم . به دلیل عدم به کار بردن پارامتر g فقط اولین مورد کلمه Java با #C عوض شده و مرد دوم بدون تغییر باقی مانده است :
مثال 2 : استفاده از پارامتر g
مثال 3 : استفاده از پارامتر i و g به صورت
همزمان
|
||||||||||||||||||||
متد ( ) slice : از این متد برای برش و جدا کردن
بخشی از متن یک متغیر رشته ای و سپس ذخیره آن در یک مغیر جدید یا چاپ در خروجی
استفاده می شود .
مثال : در مثال زیر در دو حالت به برش متغیر matn پرداخته ایم . در حالت اول نقطه شروع کارکتر 3 و نقطه پایان کاراکتر 11 در نظر گرفته شده است . در حالت دوم نقطه شروع کاراکتر 3 تعیین شده و نقطه پایان مشخص نشده است و در حالت دوم عمل برش تا انتهای متغیر انجام شده است :
متد ( ) split : از این متد برای تقسیم کردن یک
متغیر رشته ای به آرایه ای از متغیرهای رشته ای استفاده می شود . نتیجه خروجی ،
شامل قطعات تقسیم شده متغیر رشته ای است که با کاما از هم جدا شده اند . نکته 1 : اگر خاصیت seprator ، "
" تعیین شود ، عمل تقسیم بر حسب کلمات موجود در یک متغیر صورت می گیرد .
مثال : در مثال زیر در چهار حالت به برش متغیر matn توسط متد split پرداخته ایم . در حالت اول ، تقسیم بر مبنای حرف e ، در حالت دوم تقسیم بر مبنای "" ، در حالت سوم تقسیم بر مبنای " " و تعداد دفعات تقسیم هم 4 بار در نظر گرفته شده است . حالت اول در آخر هم تقسیم بر حسب حروف متغیر تعیین شده است .
|
متد small() :
از این متد برای نمایش یک متغیر رشته ای ، با اندازه ای کوچکتر از حد معمول استفاده می شود . عملکرد این متد همانند تگ < small > در HTML است .
Syntax |
stringobject.small ( ) |
مثال : در مثال زیر یک متغیر رشته ای به نام matn را یکبار به صورت معمولی و بار دیگر با متد small نمایش داده ایم . به تفاوت دقت کنید :
Example |
||
حالت اول بدون متد small |
حالت دوم با متد small |
|
<script
type ="text/javascript"> |
<script
type ="text/javascript"> |
کد |
متدstrike() :
از این متد برای نمایش یک متغیر رشته ای ، با یک خط کشیده شده بر روی آن استفاده می شود . عملکرد این متد همانند خاصیت text-decoration با مقدار line-thorough در CSS است .
Syntax |
stringobject.strike ( ) |
مثال : در مثال زیر یک متغیر رشته ای به نام matn را یکبار به صورت معمولی و بار دیگر با متد strike نمایش داده ایم . به تفاوت دقت کنید :
Example |
||
حالت اول بدون متد strike |
حالت دوم با متد strike |
|
<script
type ="text/javascript"> |
<script
type ="text/javascript"> |
کد |
متد sub() :
از این متد برای نمایش یک متغیر رشته ای ، به صورت زیر نویس استفاده می شود . عملکرد این متد همانند تگ < sub > در HTML است .
Syntax |
stringobject.sub ( ) |
مثال : در مثال زیر یک متغیر رشته ای به نام matn و یک متغیر به نام ex ایجاد کرده ایم . در خروجی ابتدا متغیر matn را چاپ کرده و متغیر ex را به صورت زیر نویس برای آن قرار داده ایم :
Example |
|
<script
type ="text/javascript"> |
کد |
متد sup() :
از این متد برای نمایش یک متغیر رشته ای ، به صورت اندیس ( بالا نویس ) استفاده می شود . عملکرد این متد همانند تگ < sup > در HTML است .
Syntax |
stringobject.sup ( ) |
مثال : در مثال زیر یک متغیر رشته ای به نام matn و یک متغیر به نام ex ایجاد کرده ایم . در خروجی ابتدا متغیر matn را چاپ کرده و متغیر ex را به صورت اندیس برای آن قرار داده ایم :
Example |
|
<script
type ="text/javascript"> |
کد |
متد substr() :
از این متغیر برای برش و جدا کردن
تعداد حروف معینی از یک متغیر متنی ، از یک نقطه مشخص در طول آن استفاده می شود .
در این متد ،
نقطه شروع عمل برش را بر حسب شماره یک کاراکتر توسط خاصیت start و تعداد کاراکترهایی که می خواهیم
از نقطه شروع برش داده شوند را توسط خاصیت length تعیین می کنیم .
Syntax |
stringobject.substr
( start , length ) |
نکته 1 : تعیین تعداد کاراکترهای مورد نظر
برای عملیات برش اختیاری بوده و می تواند تعیین نشود . در صورت عدم تعیین آن ،
انتهای متغیر به عنوان نقطه پایان برش در نظر گرفته می شود .
نکته 2 : شماره
گذاری حروف یک عبارت رشته ای در جاوا اسکریپت ، از سمت چپ بوده و از شماره گذاری
از عدد صفر شروع می شود . بنابراین در کلمه ای مثل "Java
Script" حرف
شماره 2 ، حرف v و شماره 7 حرف c خواهد بود .
نکته 3 : فاصله
خالی بین حروف نیز یک کاراکتر حساب شده و دارای شماره خواهد بود .
مثال : در مثال زیر در 2 حالت به برش متغیر متن پرداخته ایم . در حالت اول عملیات برش را از کاراکتر 4 و به تعداد 6 حرف انجام داده ایم . در حالت دوم عملیات برش را از کاراکتر 4 انجام داده ایم ، ولی تعداد کاراکتر معینی را در نظر نگرفته ایم . در این حالت انتهای متغیر به عنوان نقطه پایان عملیات برش در نظر گرفته شده است :
Example |
|
<script
type ="text/javascript"> |
کد |
متدsubstring ( ) :
از این متد برای برش و جدا کردن
بخشی از یک متغیر رشته ای ، بین دو نقطه مشخص استفاده می شود .
در این متد ،
نقطه شروع را توسط خاصیت start و بر حسب شماره یک کاراکتر و نقطه
پایان را نیز با خاصیت stop آنهم بر حسب شماره مکان یک کاراکتر
دیگر ، در طول متغیر متنی تعیین می کنیم .
Syntax |
stringobject.substr
( start , stop ) |
نکته : تعیین نقطه پایان برای عملیات برش اختیاری بوده و می تواند تعیین نشود . در صورت عدم تعیین آن ، انتهای متغیر به عنوان نقطه پایان برش در نظر گرفته می شود .
مثال : در مثال زیر در 2 حالت به برش متغیر متن پرداخته ایم . در حالت اول عملیات برش را بین کاراکترهای 4 و 9 تعیین کرده ایم . در حالت دوم عملیات برش را از کاراکتر 4 آغاز کرده ایم ، ولی نقطه پایان آن را در نظر نگرفته ایم . در این حالت انتهای متغیر به عنوان نقطه پایان عملیات برش در نظر گرفته شده است :
Example |
|
<script
type ="text/javascript"> |
کد |
متد toLowerCase() :
از این متد ، برای نمایش تمام متن یک متغیر رشته ای با حروف کوچک استفاده می شود . چنانچه در متغیر رشته ای مورد استفاده ، حرفی به شکل بزرگ باشد ، به صورت اتوماتیک به شکل کوچک آن تبدیل می شود .
Syntax |
stringobject.toLowerCase ( ) |
مثال : در مثال زیر یک متغیر رشته ای را با متد toLowerCase با حروف کوچک نمایش داده ایم :
Example |
|
<script
type ="text/javascript"> |
کد |
متد toUpperCase() :
از این متد ، برای نمایش تمام متن یک متغیر رشته ای با حروف بزرگ استفاده می شود . چنانچه در متغیر رشته ای مورد استفاده ، حرفی به شکل کوچک باشد ، به صورت اتوماتیک به شکل بزرگ آن تبدیل می شود .
Syntax |
stringobject.toUpperCase ( ) |
مثال : در مثال زیر یک متغیر رشته ای را با متد toUpperCase با حروف بزرگ نمایش داده ایم :
Example |
|
<script
type ="text/javascript"> |
کد |
مقدمه ای بر مبحث شی گرایی :
جاوا اسکریپت ، یک زبان برنامه
نویسی شی گرا یا ( Object Oriented Programming ) است . این زبان به برنامه نویس ، قابلیت
استفاده از اشیای پیش ساخته و یا تعریف و ایجاد اشیای جدید مورد نیاز خود را می
دهد .
توجه : در این
قسمت ، مروری کوتاه بر مفهوم برنامه نویسی شی گرا در جاوا اسکریپت و نحوه استفاده
از آن خواهیم داشت . در قسمت های بعدی به معرفی انواع اشیا پیش ساخته در Java Script می
پردازیم .
مفهوم کلاس :
کلاس ( class ) ، اساسی ترین مفهوم شی گرایی است . یک کلاس یک الگو یا چهارچوب از
پیش تعریف شده است که اشیا ( objects ) از روی آن ساخته می شوند . هر کلاس
مجموعه ای از خواص ( Properties ) و متدها ( Methods ) است ، که کلاس آنها را به اشیایی که
از رویش ساخته می شوند ، به ارث می دهد .
یک کلاس همانند
یک دستورالعمل یا نقشه برای ایجاد اشیای جدید مشتق شده از آن است . برای
مثال موجودیت دانشجو در مجموعه دانشگاه یک کلاس است ، که هر دانشجو یک شی ساخته
شده از روی آن است .
مثال 2 : متغیرهای
متنی یا string ، یکی از کلاس
های پیش ساخته در جاوااسکریپت است . در قسمت بعد با تمام خواص و متدهای آن آشنا
خواهید شد .
مفهوم شی :
هر شی ، یک نمونه ساخته شده از روی
کلاس مادر است . شی خصوصیات و متدهای خود را از کلاس مادر به ارث می برد .
هر یک از
خصوصیات یک شی ، در برگیرنده مقدار مختص به آن خاصیت برای آن شی است . به عبارت
دیگر ، از هر یک از خواص یک کلاس ، یک نسخه یا کپی منحصر به فرد به هر شی اختصاص
می یابد ، که مقدار آن با مقدارش برای سایر اشیای آن کلاس ، متمایز و منحصر به فرد
است .
مثال : برای
مثال ، هر دانشجو که از روی کلاس دانشجو ایجاد می شود ، دارای خاصیت های نام ، نام
خواندگی ، شماره دانشجویی و ... غیره مخصوص به خود است . گرچه مقدار این خواص در نمونه های
مختلف دانشجوها ممکن است در برخی از آنها مثل نام یکسان و در برخی مثل شماره
دانشجویی یکتا باشد ، ولی مقدار آن برای هر دانشجو جدا و متمایز است .
مفهوم متد :
متدها ، عملیات یا رفتارهایی است که
اشیا یک کلاس می توانند انجام دهند .
مثال : برای
مثال هر دانشجو که از روی کلاس دانشجو ساخته می شود ، دارای عملیات های یکسانی مثل
ثبت نام ، انتخاب واحد و ... است .
نحوه تعریف یک کلاس و ایجاد یک شی جدید در جاوا اسکریپت :
در اینجا ، به معرفی یکی از روش های
تعریف یک کلاس و ایجاد شی جدید از روی آن می پردازیم . سپس با نحوه دسترسی به خواص .
متدهای اشیا ، آشنا خواهیم شد .
برای ایجاد یک
کلاس ، از واژه کلیدی function
به شکل کلی زیر
استفاده می شود :
function
نام کلاس
( Parameter1 , Parameter2 , ... )
{
this.نام خاصیت 1 = Parameter1 ;
this.نام خاصیت 2 = Parameter2 ;
.
.
.
}
توضیح : ابتدا واژه کلیدی function را نوشته
، پس از آن نام کلاس ، که در سطح برنامه برای شناسایی و دسترسی به کلاس مورد نظر
از آن استفاده می شود را تعیین می کنیم . به تعداد خواص مورد نظر برای اشیای کلاس
، در پرانتز جلوی نام کلاس ، پارامتر تعریف کرده ، تا در هنگام فراخوانی کلاس برای
ایجاد شی جدید در برگیرنده مقادیر لازم برای خواص شی باشند .
سپس در بدنه
دستورات کلاس برای تعریف و مقدار دهی هر یک از خواص اشیای کلاس ، از وایه کلیدی this به شکل
کلی زیر استفاده می شود :
this.نام پارامتر = نام خاصیت
واژه کلیدی this ، در هر لحظه به شی جاری از کلاس که در آن لحظه در حال ساخت یا
ویرایش است ، اشاره می کند .
پس از تعریف
ساختار کلاس ، برای ایجاد یک شی جدید از حالت کلی زیر استفاده می شود :
var نام شی جدید = function نام کلاس ( Parameter1 Value , Parameter2 Value , ... ) ;
برای دسترسی و مقدار دهی هر یک از خواص یک شی از روش کلی زیر استفاده می شود :
نام خاصیت . نام شی
مثال : در مثال زیر یک کلاس به نام student ایجاد
کرده ایم . هر شی این کلاس 3 خاصیت نام ( Name ) ، نام خواندگی ( Family ) و شماره دانشجویی ( ID ) را خواهد
داشت . در هنگام فراخوانی کلاس برای ایجاد یک شی جدید ، مقادیر این 3 خاصیت به
ترتیب به پارامترهای n , f و i ارسال خواهند شد .
در مثال ، پس
از تعریف کلاس به ایجاد یک شی جدید به نام St1 و مقدار دهی خواص آن پرداخته ایم .
سپس توسط سه دستور چاپ در خروجی مشخصات کامل دانشجو جدید را در خروجی چاپ کرده ایم
. در انتها هم شماره دانشجویی ، دانشجو مذکور را دوباره مقدار دهی کرده و مقدار
جدید آن را چاپ کرده ایم :
Example |
|
<script
type ="text/javascript"> |
کد |
اشیای پیش ساخته در Java Script
شی string :
شی string یکی از اشیای پیش ساخته در جاوا
اسکریپت است . این شی برای دستکاری و انجام عملیات بر روی داده های متنی استفاده
می شود .
هر متغیر از
نوع متنی ، نمونه ای از شی string است .
در این صفحه به
معرفی خواص شی string و در
صفحه بعدی به معرفی متدهای آن خواهیم پرداخت .
خواص شی string :
در جدول زیر ، مجموعه خواص شی string ارائه شده است . برای دریافت اطلاعات درباره هر کدام ، بر روی نام آن کلیک کنید :
نام خاصیت |
شرح |
constructor |
نام تابع سازنده شی مورد نظر را بر می گرداند . |
length |
تعداد کاراکترهای یک عبارت متنی را بر می گرداند . |
prototype |
به برنامه نویس امکان اضافه کردن خواص و متدهای جدید را به شی می دهد . |
خاصیت constructor :
این خاصیت ، نام تابع سازنده شی مورد نطر را بر می گرداند . تغبع سازنده ، تابعی است که در هنگام تعریف اولیه ، شی را به وجود آورده است . شکل کلی استفاده از این خاصیت به شرح زیر است :
Syntax |
object.constructor |
مثال : در مثال زیر با استفاده از تابع string( ) یک شی string جدید به نام txtname ایجاد کرده ایم . به وسیله دستور document.write ، نوع تابع
سازنده شی را نشان داده ایم :
نکته : توجه شود
شکل صحیح نوشتاری تابع String با S بزرگ است .
Example |
|
< script
type="text/javascript" > |
کد |
خاصیت length :
این خاصیت ، تعداد کاراکترها ( حرمف ) عبارت متنی را بر می گرداند . فاصله بین حروف نیز یک کاراکتر محسوب می شود . شکل کلی استفاده از این خاصیت به شرح زیر است :
Syntax |
object.length |
مثال : در مثال زیر یک متغیر رشته ای را تعریف و سپس به وسیله دستور document.write ، طول آن را نشان داده ایم :
Example |
|
<script
type="text/javascript"> |
کد |
خاصیت prototype :
به وسیله این خاصیت می توان خواص و متدهای جدید مورد نظر خود را به شی اضافه کرد . پس از تعریف خاصیت یا متد ، می توان از آن همانند خواص ذاتی شی استفاده کرد . شکل کلی استفاده از این خاصیت به شرح زیر است :
Syntax |
object.prototype.name
= value |
مثال : در مثال زیر ابتدا یک کلاس به نام Student که دارای 3 خاصیت نام ( Name ) ، نام خواندگی ( Family ) و شماره دانشجویی ( ID ) است را ایجاد کرده و یک شی جدید به نام St 2 از روی آن ساخته ایم . سپس به کلاس یک خاصیت جدید به نام Major اضافه کرده ایم ، که قرار است رشته تحصیلی را برای دانشجو نگهداری کند . درپایان ، خاصیت جدید را برای شی St2 مقدار دهی کرده و آن را در خروجی نشان داده ایم :
Example |
|
<script
type="text/javascript"> |
کد |
مفهوم آرایه : آرایه
مجموعه ای از متغیرهایی از یک نوع داده ای با نام یکسان است ، که هر کدام از اعضای
آن توسط یک شمارنده ( اندیس ) ، از یکدیگر
متمایز می شوند .
شمارنده هر عضو
آرایه در یک براکت در مقابل نام آن تعیین شده ، که برای مقدار دهی و دسترسی به هر
عضو آرایه از اندیس آن استفاده می شود .
برای تعریف یک
آرایه ، از واژه کلیدی new Array به شکل کلی زیر استفاده می شود :
var
نام آرایه
= new Array ( ) ;
مثال :
var Cars = new Array ( ) ;
نکات مهم :
نکته 1 : می توان تعداد اعضای یک آرایه را در
زمان تعریف ، در پرانتز جلوی واژه کلیدی new Array ، تعیین کرد :
مثال : آرایه
زیر 4 عضو دارد :
var Cars = new Array ( 4 ) ;
نکته 2 : شماره گذاری اندیس اعضای یک آرایه
از صفر شروع شده و برای هر عضو شمارنده یک واحد افزایش می یابد .
مثال : آرایه ای
که در مثال قبل ایجاد کردیم ، 4 عشو زیر را داراست :
Cars [ 0 ] , Cars [ 1 ] , Cars [ 2 ] , Cars [ 3 ]
نکته 3 : برای مقدار دهی یا دسترسی به هر عضو آرایه ، از نام آرایه به همراه شمارنده یا اندیس عضو مورد نظر در براکت مقابل نام آن ، به شکل کلی زیر استفاده می شود :
مقدار
مورد نظر = [ اندیس عضو مورد نظر ] نام آرایه ;
مثال
: Cars [ 0 ] = "Ford" ;
Cars [ 1 ] = "Nissan" ;
مثال : در مثال زیر یک آرایه در یک اسکریپت تعریف شده و اعضای آن مقدار دهی شده اند . در پایان نیز عضو اول و دوم آرایه در خروجی بر روی صفحه چاپ شده اند :
Example |
|
< script
type="text/javascript" > |
کد |
روش های مقدار دهی کلی اعضای یک آرایه :
تمام یا بخش هایی از اعصای یک آرایه را می توان در هنگام تعریف و یا بعد از آن مقدار دهی کرد . به طور کلی 2 روش برای مقدار دهی اعضای یک آرایه وجود دارد :
روش اول : در روش اول ، هر یک از اعضای آرایه را به صورت تکی مقدار دهی می کنیم . در مثال زیر یک ابتدا آرایه 4 عضوی تعریف شده و سپس مقدار دهی شده است :
Example |
|
< script
type="text/javascript" > |
کد |
روش دوم : در روش دوم ، مقادیر مورد نظر برای تمام یا تعدادی از اعضای آرایه را در پرانتز جلوی واژه کلیدی new Array تعیین کرده و هر مقدار را با کاما از هم جدا می کنیم . در این حالت تعداد اعضای آرایه به طور اتوماتیک بر حسب تعداد مقادیر ورودی تعیین می شود . در مثال زیر ، آرایه تعریف 4 عضو خواهد شد . اعضای این آرایه در مرحله تعریف آرایه تعیین شده اند :
Example |
|
< script
type="text/javascript" > |
مفهوم حلقه : از ساختار دستوری حلقه ها در جاوا
اسکریپت ، برای اجرای مجوعه ای از دستور العمل ها به تعداد دفعات مورد نیاز یا تا
زمانی که یک شرط خاص درست باشد ، استفاده می شود .
در حلقه ،
هنگامی که مجموعه دستورات حلقه به طور کامل اجرا می شود ، برنامه دوباره به ابتدای
مجموعه دستورات حلقه رفته و در صورت برقرار بودن شرط حلقه ، یکبار دیگر دستورات آن
به طور کامل اجرا خواهد کرد .
به طور کلی 2
نوع حلقه در جاوا اسکریپت داریم :
در ادامه به بررسی انواع حلقه های مورد استفاده در جاوا اسکریپت می پردازیم . در لیست زیر حلقه های معرفی شده در این قسمت قرار دارند . برای دریافت اعلاعات درباره هر کدام ، بر روی آن کلیک کنید :
for |
do ... while |
1) حلقه for :
از حلقه for ، زمانی استفاده می شود که می خواهیم مجموعه دستورالعمل های حلقه
به تعداد دفعات معینی انجام شود .
این حلقه در
هنگام تعریف 3 پارامتر اصلی دارد :
نحوه عملکرد این حلقه به صورت زیر
است :
در این حلقه ،
از یک متغیر به عنوان شمارنده یا کنترل کننده حلقه استفاده می شود . این
متغیر در ابتدای اجرای حلقه ، مقدار دهی اولیه شده و اجرای مجدد حلقه با یک عبارت
شرطی کنترل شده که در صورت درست بودن شرط ، دستورات حلقه یکبار اجرا می شود و با
هر بار اجرای حلقه متغیر حلقه به اندازه گام تعیین شده ، افزایش یا کاهش می یابد .
شکل کلی تعریف
یک حلقه for به صورت
زیر است :
for
( گام افزایش یا کاهش ; تعیین عبارت کنترلی
; تعیین مقدار اولیه متغیر
)
{
دستورات بدنه حلقه
}
نکته : از 3 پارامتر اصلی حلقه for ، فقط تعیین عبارت کنترلی در هنگام تعریف حلقه اجباری بوده و می توان متغیر شمارنده حلقه را قبل از تعریف حلقه مقدار دهی کرد و همچنین گام افزایش یا کاهش را در بدنه دستورات تابع قرار داد . در این صورت می توان جای موارد فوق را در تعریف حلقه خالی گذاشت .
مثال : در مثال زیر یک حلقه ساده در اسکریپت زیر ایجاد شده است . شمارنده این حلقه که متغیری به نام n است با مقدار اولیه 1 مقدار دهی شده و شرط حلقه کوچکتر یا مساوی بودن شمارنده حلقه از 5 تعیین شده است . گام افزایش این حلقه نیز 1+ در نظر گرفته شده است . این حلقه در هر بار اجرا مقدار متغیر n را بر روی صفحه چاپ می کند . به خروجی آن دقت کنید :
Example |
|
< script
type="text/javascript" > |
کد |
مثال 2 : همانطور که گفتیم می توان قسمت پارامترهای مقدار اولیه و گام افزایش یا کاهش را در یک حلقه for خالی گذاشته و مقدار اولیه را قبل از تعریف حلقه و گام حلقه را در درون بلاک کد حلقه تعیین کرد . مثال شماره 1 را به این صورت نیز می توان نوشت :
Example |
|
< script
type="text/javascript" > |
کد |
نکته و مثال 3 : گام یک حلقه می تواند منفی یا کاهشی نیز باشد . در مثال زیر شمارنده حلقه با هر بار اجرای حلقه یک واحد کاهش می یابد :
Example |
|
< script
type="text/javascript" > |
کد |
یک برنامه کاربردی :
در این قسمت یک برنامه ساده را با
جاوا اسکریپت طراحی کرده ایم . این برنامه از طریق 2 کادر متن ، دو عدد را به عنوان
ورودی دریافت کرده و عدد اول را به توان عدد دوم می رساند .
توضیح : در ابتدا
یک متغیر به نام sum برای نگهداری جواب را با مقدار
اولیه 1 تعریف می کنیم . سپس مقدار کادر اول در متغیر n و مقدار کادر دوم را در متغیر i ذخیره می کنیم . از عدد دوم به عنوان
شمارنده حلقه استفاده شده که با هر بار اجرای حلقه ، عدد اول یکبار در خود ضرب شده
و یک واحد از شمارنده حلقه نیز کم می شود ، تا به 1 برسد . در این حالت اجرای حلقه متوقف شده و
نتیجه خروجی بر روی صفحه چاپ می شود :
Example |
|
< script
type="text/javascript" > |
کد |
حلقه while در جاوا اسکریپت :
از حلقه while در جاوا اسکریپت ، برای اجرای
دستورالعمل های مورد نظر تا زمانی که شرط یا شروط تعیین شده برای حلقه درست باشند
، استفاده می شود .
در این حالت ،
ابتدا شرط حلقه در مقابل کلمه کلیدی while تعریف می شود . در هر بار اجرای
حلقه ، برنامه شرط یا شروط حلقه را چک کرده و در صورت بر قرار بودن آن ،
دستورالعمل های حلقه را یکبار اجرا کرده و مجددا به ابتدای حلقه باز می گردد .
در حلقه while نیز می
توان از یک متغیر برای کنترل اجرای حلقه استفاده کرد . در صورت استفاده از یک
متغیر شمارنده ، باید گام افزایش یا کاهش متغیر در بدنه دستورات حلقه تعریف شود و
در صورت عدم استفاده از یک متغیر کنترلی ، باید شرط حلقه در ادامه به نحوی نقض شود
، وگرنه حلقه به صورت بی نهایت ادامه می یابد .
شکل کلی تعریف
یک حلقه while به صورت
زیر است :
while (
شرط یا شروط حلقه )
{
دستوراالعمل های مورد نظر حلقه
}
مثال : مثال اول قسمت آموزش حلقه for را در اینجا با حلقه while باز نویسی کرده ایم . در این حلقه از متغیر n به عنوان متغیر شمارنده و کنترل کننده حلقه استفاده شده است . اجرای حلقه تا زمانی که شرط آن درست است ، ادامه دارد :
Example |
|
< script
type="text/javascript" > |
کد |
مثال 2 : در این مثال برنامه کاربردی که یک عدد را به توان عدد دیگری می رساند را که با حلقه for نوشته بودیم ، را با حلقه while باز نویسی کرده ایم . به تفاوت های این دو ساختار دقت کنید :
Example |
|
< script
type="text/javascript" > |
کد |
حلقه do ... while :
ساختار حلقه do ... while
، دقیقا همانند حلقه while است ، با این تفاوت که شرط حلقه do ... while در انتهای حلقه تعریف و کنترل می
شود . به عبارت دیگر در این حلقه ابتدا یکبار دستورات حلقه اجرا شده و در آخر شرط
حلقه برای اجرای مجدد ، کنترل می شود که در صورت درست بودن یکبار دیگر دستورات آن
خواهد شد .
مزیت این حلقه
نسبت به حلقه while این است
که ، در حلقه while در صورت
عدم برقراری شرط حلقه دستورات آن هیچگاه اجرا نخواه شد . اما در حلقه do ... while
، حتی در صورت غلط بودن و عدم برقراری شرط حلقه ، دستورات آن حداقل
یکبار اجرا خواهد شد .
شکل کلی تعریف
یک حلقه do ... while به صورت
زیر است :
do
{
دستورات حلقه
}
while ( شرط یا شروط حلقه )
مثال : مثال اول قسمت آموزش حلقه while را در اینجا با حلقه do ... while باز نویسی کرده ایم . در این حلقه از متغیر n به عنوان متغیر شمارنده و کنترل کننده حلقه استفاده شده است . اجرای حلقه تا زمانی که شرط آن درست است ، ادامه دارد :
Example |
|
< script
type="text/javascript" > |
کد |
مثال : در مثال زیر یک حلقه do ... while تعریف شده که شرط اجرای دستورات آن کوچکتر بودن متغیر c از 5 است . اما قبل از حلقه متغیر c با مقدار 8 مقدار دهی شده است . می بینیم که با وجود اشتباه بودن و عدم برقراری شرط حلقه دستورات آن حداقل یکبار اجرا شده و خروجی تولید کرده است ، ولی سری دوم اجرای حلقه به دلیل عدم برقراری شرط آن اجرا نشده است :
Example |
|
< script
type="text/javascript" > |
کد |
حلقه while در جاوا اسکریپت :
از حلقه while در جاوا اسکریپت ، برای اجرای
دستورالعمل های مورد نظر تا زمانی که شرط یا شروط تعیین شده برای حلقه درست باشند
، استفاده می شود .
در این حالت ،
ابتدا شرط حلقه در مقابل کلمه کلیدی while تعریف می شود . در هر بار اجرای
حلقه ، برنامه شرط یا شروط حلقه را چک کرده و در صورت بر قرار بودن آن ،
دستورالعمل های حلقه را یکبار اجرا کرده و مجددا به ابتدای حلقه باز می گردد .
در حلقه while نیز می
توان از یک متغیر برای کنترل اجرای حلقه استفاده کرد . در صورت استفاده از یک
متغیر شمارنده ، باید گام افزایش یا کاهش متغیر در بدنه دستورات حلقه تعریف شود و
در صورت عدم استفاده از یک متغیر کنترلی ، باید شرط حلقه در ادامه به نحوی نقض شود
، وگرنه حلقه به صورت بی نهایت ادامه می یابد .
شکل کلی تعریف
یک حلقه while به صورت
زیر است :
while (
شرط یا شروط حلقه )
{
دستوراالعمل های مورد نظر حلقه
}
مثال : مثال اول قسمت آموزش حلقه for را در اینجا با حلقه while باز نویسی کرده ایم . در این حلقه از متغیر n به عنوان متغیر شمارنده و کنترل کننده حلقه استفاده شده است . اجرای حلقه تا زمانی که شرط آن درست است ، ادامه دارد :
Example |
|
< script
type="text/javascript" > |
کد |
مثال 2 : در این مثال برنامه کاربردی که یک عدد را به توان عدد دیگری می رساند را که با حلقه for نوشته بودیم ، را با حلقه while باز نویسی کرده ایم . به تفاوت های این دو ساختار دقت کنید :
Example |
|
< script
type="text/javascript" > |
کد |
حلقه do ... while :
ساختار حلقه do ... while
، دقیقا همانند حلقه while است ، با این تفاوت که شرط حلقه do ... while در انتهای حلقه تعریف و کنترل می
شود . به عبارت دیگر در این حلقه ابتدا یکبار دستورات حلقه اجرا شده و در آخر شرط
حلقه برای اجرای مجدد ، کنترل می شود که در صورت درست بودن یکبار دیگر دستورات آن
خواهد شد .
مزیت این حلقه
نسبت به حلقه while این است
که ، در حلقه while در صورت
عدم برقراری شرط حلقه دستورات آن هیچگاه اجرا نخواه شد . اما در حلقه do ... while
، حتی در صورت غلط بودن و عدم برقراری شرط حلقه ، دستورات آن حداقل
یکبار اجرا خواهد شد .
شکل کلی تعریف
یک حلقه do ... while به صورت
زیر است :
do
{
دستورات حلقه
}
while ( شرط یا شروط حلقه )
مثال : مثال اول قسمت آموزش حلقه while را در اینجا با حلقه do ... while باز نویسی کرده ایم . در این حلقه از متغیر n به عنوان متغیر شمارنده و کنترل کننده حلقه استفاده شده است . اجرای حلقه تا زمانی که شرط آن درست است ، ادامه دارد :
Example |
|
< script
type="text/javascript" > |
کد |
مثال : در مثال زیر یک حلقه do ... while تعریف شده که شرط اجرای دستورات آن کوچکتر بودن متغیر c از 5 است . اما قبل از حلقه متغیر c با مقدار 8 مقدار دهی شده است . می بینیم که با وجود اشتباه بودن و عدم برقراری شرط حلقه دستورات آن حداقل یکبار اجرا شده و خروجی تولید کرده است ، ولی سری دوم اجرای حلقه به دلیل عدم برقراری شرط آن اجرا نشده است :
Example |
|
< script
type="text/javascript" > |
کد |
حلقه for...in در جاوا اسکریپت :
از حلقه for ... in در جاوا اسکریپت ، برای حرکت در
درون اعضای یک آرایه یا مجموعه خواص یک شی استفاده می شود . به ازای خواندن هر یک
از اعضا آرایه یا یکی از خواص شی مورد نظر ، یکبار دستورات درون حلقه اجرا خواهد
شد .
تعداد دفعات
تکرار دستورات حلقه ، برابر با تعداد اعضای آرایه و یا تعداد خواص شی مورد نظر است
. در این حلقه معمولا از یک متغیر به عنوان شمارنده یا اندیس آرایه استفاده می شود .
شکل کلی تعریف
یک حلقه for...in به صورت
زیر است :
for ( متغیر
in نام یک آرایه / مجموعه خواص یک شی )
{
دستورات بدنه حلقه
}
مثال : در مثال زیر ابتدا یک آرایه به نام Lesson برای نگهداری نام دروس کامپیوتر با 5 عضو ایجاد و مقدار دهی شده است . وظیفه حلقه for...in حرکت در درون اعضای آرایه Lesson و چاپ نام تک تک آنها به عنوان خروجی است . به کد مثال دقت کنید :
Example |
|
< script
type="text/javascript" > |
کد |
- یک مثال مرتبط با دستور continue و حلقه for...in
مثال : فرض کنید که در مثال بالا فقط می خواهیم نام دروسی از آرایه Lesson چاپ شود ، که شماره اندیس آنها در آرایه زوج باشد . بنابراین در بدنه دستورات حلقه یک دستور continue با این شرط که باقی مانده حاصل از تقسیم شماره اندیس آرایه بر 2 برابر صفر نباشد را به قبل از دستور چاپ حلقه اضافه می کنیم . در این صورت نام اعضایی از آرایه که شماره اندیس آنها فرد است چاپ نمی شود و حلقه به اندیس بعدی می رود :
Example |
|
< script
type="text/javascript" > |
کد |
دستورات break و continue
دستور break :
از دستور break برای خروج کامل از ادامه اجرای
دستورات یک حلقه در صورت بر قرار بودن شرط تعیین شده برای آن استفاده می شود .
دستور break را باید
در بدنه دستورات یک حلقه تعریف کرد . در هر بار اجرای حلقه ، برنامه با رسیدن به
شرط دستور break ، آنرا چک
کرده و در صورت برقراری شرط از ادامه اجرای دستورات حلقه به طور کامل جلوگیری کرده
و به طور کامل از حلقه خارج می شود .
شکل کلی تعریف یک دستور break به صورت
زیر است :
نکته : عملکرد و
استفاده از دستور break در تمام حلقه ها یکسان است . در مثال
زیر فرض می کنیم ، حلقه ما while است :
while ( شرط حلقه )
{
دستورات حلقه
if ( شرط حلقه ) break ;
ادامه دستورات حلقه
}
مثال : مثال چاپ شماره خطوط را که در حلقه های قبل به کار برده بودیم را در این قسمت ، با دستور break باز نویسی کرده ایم . در این حلقه شرط دستور break ، برابر شدن متغیر شمارنده حلقه یعنی n با مقدار 3 است ، که در هنگامی که n برابر 3 می شود ، برنامه از اجرای ادامه دستورات حلقه جلوگیری کرده و از حلقه خارج می شود . بنابرین شماره خطوط تا شماره 3 چاپ شده و 4 و 5 چاپ نمی شود :
Example |
|
نکته : توجه شود که دستورات قبل از دستور break در بدنه حلقه ، به طور کامل اجرا می شوند و تاثیر دستور break بر دستورات بعد از خود می باشد . |
|
< script
type="text/javascript" > |
کد |
دستور continue :
از دستور continue ، برای خارج شدن از ادامه اجرای یکبار دستورات حلقه و پرش به گام
بعدی حلقه استفاده می شود .
دستور continue را باید
در بدنه دستورات حلقه تعریف کرد . در هر بار اجرای حلقه ، برنامه با رسیدن به شرط
تعیین شده برای دستور continue آن دستور را بررسی کرده و در صورت
درست بودن ، از ادامه اجرای دستورات حلقه در آن مرحله جلوگیری کرده و مجددا به
ابتدای حلقه باز می گردد . در این حالت ، گام حرکت حلقه یکبار اجرا خواهد شد .
شکل کلی تعریف یک دستور continue ، به صورت زیر
است .
نکته : عملکرد و
استفاده از دستور continue در تمام حلقه ها یکسان است . در این
مثال ، ما فرض کرده ایم که حلقه while است :
while ( شرط حلقه )
{
دستورات حلقه
if ( شرط حلقه ) continue ;
ادامه دستورات حلقه
}
مثال : مثال چاپ شماره خطوط را که در حلقه های قبل به کار برده بودیم را در این قسمت ، با دستور continue باز نویسی کرده ایم . در این حلقه شرط دستور continue ، برابر شدن متغیر شمارنده حلقه یعنی n با مقدار 3 است ، که در هنگامی که n برابر 3 می شود ، برنامه از اجرای ادامه دستورات حلقه در مرحله ای که 3 = n است جلوگیری کرده و به گام بعدی حلقه یعنی 4 = n پرش می کند . بنابرین شماره خطوط تا شماره 2 چاپ شده و شماره 3 چاپ نشده و به ادامه اجرای حلقه در خط 4 پرش می شود .
Example |
|
نکته : توجه شود که دستورات قبل از دستور continue در بدنه حلقه ، به طور کامل اجرا می شوند و تاثیر دستور continue بر دستورات بعد از خود می باشد . |
|
< script
type="text/javascript" > |
کد |
ساختار دستوری try ... catch :
در برنامه نویسی و طراحی صفحات وب ، گاهی اوقات ممکن است خطاهایی رخ دهد . این خطاها می تواند دلایل مختلفی داشته باشد ، از قبیل :
اگر کاربر که در حال مشاهده یک صفحه است ، در هنگام کار با خطا مواجه شود و عملا راهی برای رفع آن اشکال برایش وجود نداشته باشد ، مطمًننا از ادامه مشاهده و کار با صفحه صرف نظر خواهد کرد . این وظیفه برنامه نویس است که با برنامه ریزی صحیح ، خطاهای احتمالی را پیدا کرده و راه حل های مناسب را برای آنها طراحی کند .
از ساختار کنترلی try ... catch در جاوا
اسکریپت ، برای پیدا کردن خطاها و error های احتمالی و تعیین اقدامات اصلاحی
در صورت بروز خطا ، استفاده می شود .
این ساختار از
2 بخش try و catch تشکیل
شده است . کد اصلی برنامه که می خواهیم اجرا شود و احتمال می دهیم دارای خطا باشد
، را در قسمت try قرار
داده و اقدامات اصلاحی را که می خواهیم در صورت بروز خطا انجام شود ، را در قسمت catch می
گذاریم .
برنامه در
هنگام رسیدن به ساختار ، دستورات قسمت try را انجام می دهد و در صورت مواجه با
خطا در دستورات ، بخش catch را اجرا خواهد کرد .
نکته مهم : در صورت
عدم برخورد با خطا ، دستورات قسمت catch به هیچ وجه اجرا نخواهد شد .
نکته مهم 2 : در قسمت catch ، می توان در پرانتز مقابل واژه کلیدی catch ، یک عبارت یا
متغیر تعریف کرد ، که این متغیر خصوصیات error به وجود آمده را در خود نگهداری کرد
. یکی از این خواص ، شرح یا description خطا است ، که می توان به شکلی که در
مثال 2 نشان داده شده است ، به شرح خطا دسترسی داشته و آنرا به کاربر اطلاع داد .
شکل کلی تعریف
یک ساختار try ... catch به صورت
زیر است :
try
{
دستورات مورد نظر برای اجرا که احتمال
خطا دارد
}
catch ( نام یک متغیر )
{
اقدامات اصلاحی مورد نظر در صورت وقوع
خطا
}
مثال 1 : در مثال زیر ، یک تابع به نام show_error قرار داده شده است . این تابع توسط دکمه فرمان click me فراخوانی شده و قصد دارد تا یک پیغام خوش آمد به کاربر اعلام کند . اما در متن دستور یک اشتباه تایپی وجود دارد و آن اینکه به جای عبارت documnet.write ، نوشته شده است document.wriet ، به همین دلیل پیغام خروجی چاپ نشده و در صفحه error رخ می دهد . اگر دقت کنید در نوار پایین مرورگر ( Status Bar ) علامت Error on page قرار گرفته است . برای مشاهده error ، بر روی آیکون خطا کلیک کنید . در اینجا به دلیل عدم پیش بینی خطا هیچ واکنشی از سوی مرورگر انجام نمی شود :
Example |
|
< script
type="text/javascript" > |
کد |
مثال 1 : در مثال زیر ، تابع show_error2 قرار داده شده است . این تابع نیز همانند تابع قبلی می خواهد یک پیام خوش آمد به کاربر اعلام کند . این تابع نیز دارای اشتباه تایپی در دستور document.write است ، با این تفاوت که با ساختار try ... catch قرار داده شده ، تعیین شده است در صورت بروز خطا یک پیام هشدار به کاربر اعلام شود . توسط متغیر err که در پرانتز مقابل واژه کلیدی catch تعریف شده است ، متن پیام error در خاصیت description ذخیره شده و سپس به کاربر اعلام می شود . به کد مثال دقت کنید :
Example |
|
< script
type="text/javascript" > |
کد |
دستور throw :
توسط دستور throw در جاوا اسکریپت می توان یک خطایابی
کامل تر را انجام داد . با استفاده از این دستور به همراه ساختار try ... catch ، می توان
روند اجرای برنامه و بروز خطا را کاملا تحت کنترل داشت و یک پیغام خطا دقیق طراحی
کرد .
نکته : دستور throw به
تنهایی کاربردی نداشته و باید آنرا با ساختار دستوری try ...
catch به کار برد .
در مثال زیر سعی شده است ، تا
چگونگی استفاده از یک دستور throw را در قالب ساختار try ... catch توضیح داد .
مثال : در مثال
زیر یک اسکریپت ساده برای دریافت ورودی از کاربر طراحی شده است . تابع Enter_Num که توسط دکمه فرمان Enter Number فراخوانی
می شود ، در ابتدا یک کادر متن برای دریافت ورودی از کاربر ، نمایش می دهد . مقدار
دریافتی از کاربر در متغیر Num ذخیره می شود . سپس در یک ساختار try ... catch ، مقدار
دریافتی از کاربر بررسی می شود .
در حالت اول ،
چنانچه کاربر مقداری را در کادر وارد نکرده و آنرا خالی ارسال کرده باشد ، برنامه
خطای 1 را شناسایی و یک پیام هشدار مبنی بر وارد کردن عدد نمایش داده و سپس مجددا
تابع Enter_Num را برای دریافت مقدار صحیح اجرا می
کند . در حالت
دوم اگر کاربر عددی بزرگتر از 100 را وارد کرده باشد ، برنامه خطای دوم را شناسایی
کرده و یک پیغام هشدار مبنی بر بزرگ بودن عدد وارده را نمایش داده و مجددا تابع Enter_Num را اجرا می کند . به کد مثال و نحوه
استفاده از دستور throw دقت کنید :
Example |
|
< script
type="text/javascript" > |
کد |
ساختار دستوری try ... catch :
در برنامه نویسی و طراحی صفحات وب ، گاهی اوقات ممکن است خطاهایی رخ دهد . این خطاها می تواند دلایل مختلفی داشته باشد ، از قبیل :
اگر کاربر که در حال مشاهده یک صفحه است ، در هنگام کار با خطا مواجه شود و عملا راهی برای رفع آن اشکال برایش وجود نداشته باشد ، مطمًننا از ادامه مشاهده و کار با صفحه صرف نظر خواهد کرد . این وظیفه برنامه نویس است که با برنامه ریزی صحیح ، خطاهای احتمالی را پیدا کرده و راه حل های مناسب را برای آنها طراحی کند .
از ساختار کنترلی try ... catch در جاوا
اسکریپت ، برای پیدا کردن خطاها و error های احتمالی و تعیین اقدامات اصلاحی
در صورت بروز خطا ، استفاده می شود .
این ساختار از
2 بخش try و catch تشکیل
شده است . کد اصلی برنامه که می خواهیم اجرا شود و احتمال می دهیم دارای خطا باشد
، را در قسمت try قرار
داده و اقدامات اصلاحی را که می خواهیم در صورت بروز خطا انجام شود ، را در قسمت catch می
گذاریم .
برنامه در
هنگام رسیدن به ساختار ، دستورات قسمت try را انجام می دهد و در صورت مواجه با
خطا در دستورات ، بخش catch را اجرا خواهد کرد .
نکته مهم : در صورت
عدم برخورد با خطا ، دستورات قسمت catch به هیچ وجه اجرا نخواهد شد .
نکته مهم 2 : در قسمت catch ، می توان در پرانتز مقابل واژه کلیدی catch ، یک عبارت یا
متغیر تعریف کرد ، که این متغیر خصوصیات error به وجود آمده را در خود نگهداری کرد
. یکی از این خواص ، شرح یا description خطا است ، که می توان به شکلی که در
مثال 2 نشان داده شده است ، به شرح خطا دسترسی داشته و آنرا به کاربر اطلاع داد .
شکل کلی تعریف
یک ساختار try ... catch به صورت
زیر است :
try
{
دستورات مورد نظر برای اجرا که احتمال
خطا دارد
}
catch ( نام یک متغیر )
{
اقدامات اصلاحی مورد نظر در صورت وقوع
خطا
}
مثال 1 : در مثال زیر ، یک تابع به نام show_error قرار داده شده است . این تابع توسط دکمه فرمان click me فراخوانی شده و قصد دارد تا یک پیغام خوش آمد به کاربر اعلام کند . اما در متن دستور یک اشتباه تایپی وجود دارد و آن اینکه به جای عبارت documnet.write ، نوشته شده است document.wriet ، به همین دلیل پیغام خروجی چاپ نشده و در صفحه error رخ می دهد . اگر دقت کنید در نوار پایین مرورگر ( Status Bar ) علامت Error on page قرار گرفته است . برای مشاهده error ، بر روی آیکون خطا کلیک کنید . در اینجا به دلیل عدم پیش بینی خطا هیچ واکنشی از سوی مرورگر انجام نمی شود :
Example |
|
< script
type="text/javascript" > |
کد |
مثال 1 : در مثال زیر ، تابع show_error2 قرار داده شده است . این تابع نیز همانند تابع قبلی می خواهد یک پیام خوش آمد به کاربر اعلام کند . این تابع نیز دارای اشتباه تایپی در دستور document.write است ، با این تفاوت که با ساختار try ... catch قرار داده شده ، تعیین شده است در صورت بروز خطا یک پیام هشدار به کاربر اعلام شود . توسط متغیر err که در پرانتز مقابل واژه کلیدی catch تعریف شده است ، متن پیام error در خاصیت description ذخیره شده و سپس به کاربر اعلام می شود . به کد مثال دقت کنید :
Example |
|
< script
type="text/javascript" > |
کد |
دستور: throw
توسط دستور throw در جاوا اسکریپت می توان یک خطایابی
کامل تر را انجام داد . با استفاده از این دستور به همراه ساختار try ... catch ، می توان
روند اجرای برنامه و بروز خطا را کاملا تحت کنترل داشت و یک پیغام خطا دقیق طراحی
کرد .
نکته : دستور throw به
تنهایی کاربردی نداشته و باید آنرا با ساختار دستوری try ...
catch به کار برد .
در مثال زیر سعی شده است ، تا
چگونگی استفاده از یک دستور throw را در قالب ساختار try ... catch توضیح داد .
مثال : در مثال
زیر یک اسکریپت ساده برای دریافت ورودی از کاربر طراحی شده است . تابع Enter_Num که توسط دکمه فرمان Enter Number فراخوانی
می شود ، در ابتدا یک کادر متن برای دریافت ورودی از کاربر ، نمایش می دهد . مقدار
دریافتی از کاربر در متغیر Num ذخیره می شود . سپس در یک ساختار try ... catch ، مقدار
دریافتی از کاربر بررسی می شود .
در حالت اول ،
چنانچه کاربر مقداری را در کادر وارد نکرده و آنرا خالی ارسال کرده باشد ، برنامه
خطای 1 را شناسایی و یک پیام هشدار مبنی بر وارد کردن عدد نمایش داده و سپس مجددا
تابع Enter_Num را برای دریافت مقدار صحیح اجرا می
کند . در حالت
دوم اگر کاربر عددی بزرگتر از 100 را وارد کرده باشد ، برنامه خطای دوم را شناسایی
کرده و یک پیغام هشدار مبنی بر بزرگ بودن عدد وارده را نمایش داده و مجددا تابع Enter_Num را اجرا می کند . به کد مثال و نحوه
استفاده از دستور throw دقت کنید :
Example |
|
< script
type="text/javascript" > |
کد |
ساختار دستوری: onerror
استفاده از ساختار onerror ، روش قدیمی
خطا یابی در صفحات وب در زبان جاوا اسکریپت است .
در صفحه قبل ،
نحوه استفاده از ساختار دستوری try ...
catch را توضیح دادیم
. از ساختار دستوری onerror نیز برای خطایابی در صفحات وب ، ولی
با روشی متفاوت استفاده می شود .
رویداد onerror ، هر زمان که
خطایی در یک اسکریپت در صفحه به وجود بیاید ، تحریک شده و اتفاق می افتد . برای
استفاده از رویداد onerror ، برنامه نویس
باید تابعی را طراحی کند که خطا به وجود آمده در صفحه را مدیریت ( Handle ) کند .
رویداد onerror در زمان
بروز خطا ، تابع مدیریت خطا ( Event
Handler Function ) را
فراخوانی خواهد کرد ، که در این صورت دستورات پیش بینی شده برای مواجه با خطا اجرا
خواهد شد .
تابع مدیریت
خطا با 3 پارامتر ( آرگومان ) ، به شرح زیر فراخوانی خواهد شد :
شکل کلی تعریف یک ساختار onerror ، به همراه تابع مدیریت خطا به صورت زیر است :
onerror
= نام تابع مدیریت خطا
function نام تابع مدیریت خطا ( )
{
دستورات مدیریت خطا
return false Or true
}
نکته مهم : تابع مدیریت خطا دارای یک مقدار
بازگشتی است ، که توسط طراح و به وسیله دستور return تعیین می شود . این مقدار می تواند
یکی از 2 حالت True یا False باشد
.این مقدار تعیین می کند که آیا مرروگر در هنگام بروز خطا ، علامت خطا را در نوار
پایین مرورگر ( Status Bar ) نشان
داده و گزارش استاندارد راجع به خطا به وجود آمده اعلام کند یا خیر .
در صورت تعیین
و باز گرداندن مقدار True ، مررورگر در
هنگام وقوع یک error ، در نوار Status Bar علامت و گزارش خطا را اعلام نمی کند
ولی در صورت بازگرداندن مقدار False ، مرورگر در نوار پایین علامت خطا را نمایش داده و یک گزارش کامل
از خطا را به صورت استاندارد اعلام می کند .
مثال : در مثال زیر یک تابع مدیریت خطا با نام
ErrorHandler برای واکنش در زمان بروز خطا طراحی
شده است . این تابع قرار است در هنکام بروز خطا یک کادر پیام حاوی توضیح نوع خطا ،
آدرس کامل صفحه ای که خطا در آن روی داده و شماره خط کد اشتباه را به کاربر اعلام
کند .
از طرف دیگر در
تابع PageEroor ، یک اشتباه تایپی وجود دارد و به جای عبارت alert نوشته شده است alertt . این اشتباه باعث بروز خطا در صفحه
شده که در نتیجه تابع مدیریت خطا فراخوانی شده و پیغام خود را نمایش می دهد .
همچنین به علت باز گرداندن مقدار true توسط تابع مدیریت خطا ، مرورگر
علامت خطا را در نوار Status Bar نشان نمی دهد :
Example |
|
<script
type="text/javascript"> |
کد |
ساختار دستوری onerror :
استفاده از ساختار onerror ، روش قدیمی
خطا یابی در صفحات وب در زبان جاوا اسکریپت است .
در صفحه قبل ،
نحوه استفاده از ساختار دستوری try ...
catch را توضیح دادیم
. از ساختار دستوری onerror نیز برای خطایابی در صفحات وب ، ولی
با روشی متفاوت استفاده می شود .
رویداد onerror ، هر زمان که
خطایی در یک اسکریپت در صفحه به وجود بیاید ، تحریک شده و اتفاق می افتد . برای
استفاده از رویداد onerror ، برنامه نویس
باید تابعی را طراحی کند که خطا به وجود آمده در صفحه را مدیریت ( Handle ) کند .
رویداد onerror در زمان
بروز خطا ، تابع مدیریت خطا ( Event
Handler Function ) را
فراخوانی خواهد کرد ، که در این صورت دستورات پیش بینی شده برای مواجه با خطا اجرا
خواهد شد .
تابع مدیریت
خطا با 3 پارامتر ( آرگومان ) ، به شرح زیر فراخوانی خواهد شد :
شکل کلی تعریف یک ساختار onerror ، به همراه تابع مدیریت خطا به صورت زیر است :
onerror
= نام تابع مدیریت خطا
function نام تابع مدیریت خطا ( )
{
دستورات مدیریت خطا
return false Or true
}
نکته مهم : تابع مدیریت خطا دارای یک مقدار
بازگشتی است ، که توسط طراح و به وسیله دستور return تعیین می شود . این مقدار می تواند
یکی از 2 حالت True یا False باشد
.این مقدار تعیین می کند که آیا مرروگر در هنگام بروز خطا ، علامت خطا را در نوار
پایین مرورگر ( Status Bar ) نشان
داده و گزارش استاندارد راجع به خطا به وجود آمده اعلام کند یا خیر .
در صورت تعیین
و باز گرداندن مقدار True ، مررورگر در
هنگام وقوع یک error ، در نوار Status Bar علامت و گزارش خطا را اعلام نمی کند
ولی در صورت بازگرداندن مقدار False ، مرورگر در نوار پایین علامت خطا را نمایش داده و یک گزارش کامل
از خطا را به صورت استاندارد اعلام می کند
مثال : در مثال زیر یک تابع مدیریت خطا با
نام ErrorHandler برای واکنش در زمان بروز خطا طراحی
شده است . این تابع قرار است در هنکام بروز خطا یک کادر پیام حاوی توضیح نوع خطا ،
آدرس کامل صفحه ای که خطا در آن روی داده و شماره خط کد اشتباه را به کاربر اعلام
کند .
از طرف دیگر در
تابع PageEroor ، یک اشتباه تایپی وجود دارد و به جای عبارت alert نوشته شده است alertt . این اشتباه باعث بروز خطا در صفحه
شده که در نتیجه تابع مدیریت خطا فراخوانی شده و پیغام خود را نمایش می دهد .
همچنین به علت باز گرداندن مقدار true توسط تابع مدیریت خطا ، مرورگر
علامت خطا را در نوار Status Bar نشان نمی دهد :
Example |
|
<script
type="text/javascript"> |
کد |
تعریف تابع :
تعریف تابع : یک تابع مجموعه ای واحد از یکسری دستورالعمل است که در هر بار فراخوانی ، کل دستورات درون آن یکبار اجرا می شود .
می دانیم که هر برنامه کامپیوتری ، شامل مجموعه ای از دستوالعمل هاست . از توابع برای شکستن و تقسیم کردن کل برنامه به واحدهای کوچکتر و مستقل استفاده می شود .
قابلیت های تابع :
استفاده از توابع در صفحات و اسکریپت ها ، امکانات زیر را به برنامه نویس می دهد :
دستورات یک تابع ( حتی در زمانی که اسکریپت آن در درون صفحه قرار دارد ) ، تا زمانی که فراخوانی نشود ، اجرا نخواهد شد . از توابع برای تعریف دستور العمل هایی استفاده می شود که می خواهیم اجرای آنها کنترل شده باشد و در مواقع معینی ( مثل وقوع یک رویداد یا ... ) انجام شود .
یک تابع را می توان از هر نقطه ای در صفحه فراخوانی کرد .
یک تابع می توان یکسری متغیرها را به عنوان پارامتر ورودی دریافت کرده و همچنین یک مقدار را به عنوان خروجی به نقطه ای که از آن فراخوانی شده سات ، باز گردهند .
محل تعریف توابع :
توابع را می توان در هر جای تگ های اسکریپت ، تعریف کرد .
نکته مهم : در قسمت مکان قرار گیری اسکریپت ها در صفحات وب اشاره کردیم ، اسکریپت هایی که در درون قسمت < body > تعریف می شوند ، به محض لود شدن صفحه اجرا خواهند شد . اما چنانچه این اسکریپت ها شامل توابع باشند ، دستورات آن توابع تا زمان فراخوانی تابع اجرا نخواهند شد .
شکل کلی تعریف توابع :
برای تعریف یک تابع از واژه کلیدی function به شکل کلی زیر استفاده می شود :
function نام تابع ( )
{
دستورات تابع
}
مثال :در مثال زیر یک تابع به نام welcome ، تعریف شده است . این تابع تا زمانی که فراخوانی نشود اجرا نشده و خروجی ندارد .
Example
< script type="text/javascript" >
function welcome( )
{
"); document.write ( "welcome to Gharbnet.ir
}
< /script >
یک تابع را به شرطی که قبل از آن به طور کامل تعریف شده باشد ، می توان از هر جای صفحه فراخوانی کرد . برای فراخوانی یک تابع ، از نام تابع به همراه یک پرانتز باز و بسته در مقابل نام آن به صورت زیر عمل می شود :
نام تابع ( ) ;
مثال :در مثال زیر تابع welcome را که در مثال قبل نیز استفاده کرده بودیم را توسط یک اسکریپت دیگر فراخوانی کرده ایم .
< html >
< head >
< title/ > عنوان صفحه < title >
< /head >
< body >
< script type="text/javascript" >
function welcome( )
{
"); document.write ( "welcome to Gharbnet.ir
}
< /script >
< script type="text/javascript" >
welcome ( ) ;
</script>
< body/ >
< /html >
نکته : یک تابع را می توان توسط رویدادهای یک کنترل HTML مثل یک دکمه فرمان نیز فراخوانی کرد . در این حالت باید مقدار رویداد مورد نظر را در تگ کنترل ، برابر نام تابع در نظر گرفت . به مثال زیر دقت کنید .
نحوه تعریف پارامتر برای یک تابع :
تعریف پارامتر :پارامتر ، یک متغیر است که می توان در هنگام فراخوانی یک تابع ، مقدار آن را به تابع ارجاع داد . به پارامتر ، آرگومان نیز می گویند .
یک تابع می تواند ، چندین متغیر را به عنوان پارامتر ورودی دریتفت کند . پارامترهای یک تابع را باید در هنگام تعریف تابع ، در پرانتز مقابل نام آن تعیین کرد ، که پارامترها را با کاما از هم جدا می کنیم .
در هنگام فراخوانی یک تابع که دارای پارامتر است ، باید در پرانتز مقابل نام آن ، مقادیر متناظر با پارامترهایش را اعلام کرد . این پارامترها باید از لحاظ تعداد و نوع کاملا یکسان با پارامترهای تعریف شده در تابع باشند .
شکل کلی تعریف پارامتر برای یک تابع بع صورت زیر است :
funciton نام تابع ( Parametr 1 , Parametr 2 , ... )
{
دستورات تابع
}
مثال
: function multiple ( var num1 , var num2 )
{
دستورات تابع
}
در هنگام فراخوانی یک تابع نیز باید به شکل زیر پارامترهای آن را مقدار دهی کرد . توجه شود که نوع و تعداد متغیرها باید کاملا یکسان با پارامترهای تعریف شده برای تابع باشد ، در غیر این صورت error رخ داده و تابع اجرا نمی شود .
function نام تابع g (
Parametr 1 مقدار , Parametr 2 مقدار , ... )
{
دستورات تابع
}
مثال : در مثال زیر تابع multiple را که در بالا تعریف کرده بودیم با تعیین پارامترهای لازم ، فراخوانی کرده ایم :
multiple ( 2 , 10 ) ;
نکته مهم : پارامتر های یک تابع ، به عنوان متغیرهای محلی برای آن تابع قابل استفاده هستند .
مثال : در مثال زیر تابع multiple با دو پارامتر num1 و num2 تعریف شده است ، که این تابع این دو عدد را در هم ضرب کرده و به عنوان خروجی روی صفحه نمایش می دهد . این تابع در یک اسکریپت دیگر توسط تابع Call_Function فراخوانی می شود . این تابع دو عدد را از دو کادر متن مثال دریافت کرده و به ترتیب آنها را در متغیرهای a , b ذخیره می کند . سپس آن را در هنگام فراخوانی به تابع multiple پاس می دهد . توجه شود که از متغیر های دیگر نیز می توان برای فراخوانی استفاده کرد . برای مشاهده خروجی 2 عدد را در کادر متن ها وارد کرده و بر روی دکمه فرمان multiple کلیکگ کنید .
< script
type="text/javascript" >
function multiple ( num1 , num2 )
{
document.write ( num1 * num2 ) ;
}
< /script >
< script type="text/javascript" >
function Call_Function (
)
{
var a = Text1.value ;
var b = Text2.value ;
multiple (
a , b ) ; فراخوانی تابع
با پارامترهای لازم و چاپ خروجی
}
< /script >
< input type="button" id="Button2" onclick="Call_Function( )" value="
click me ! " />
< input type="text" id="Text1" />
< input type="text" id="Text2" />
نحوه تعریف مقدار بازگشی برای یک تابع :
یک تابع می تواند پس از انجام دستورات در نظر گرفته شده برای آن ، مقداری را به عنوان خروجی به نقطه ای که از آن فراخوانی شده است ، باز گرداند .
برای تعیین مقدار بازگشتی یک تابع از دستور return استفاده کرده ، که مقدار خروجی را درپرانتز مقابل آن دستور به شکل زیر تعریف می کنیم .
return ( مقدار بازگشتی ) ;
نکته : مقدار بازگشتی ، می تواند یک رشتته یا عدد ، یک متغیر و یا یک عبارت محاسباتی باشد .
منوهای Pop-Up در جاوا اسکریپت :
توسط کادر های Pop-Up در جاوا اسکریپت ، می توان به کاربر پیغام اخطار داد ، از
آن تایید گرفت و یا ورودی دریافت کرد . این کادر ها در مواقع مورد نظر ظاهر شده و
عملیات تعیین شده برای آنها انجام خواهند داد .
به طور کلی 3 نوع کادر Pop-Up در جاوا اسکریپت داریم :
در ادامه به معرفی و توضیح هر یک از کادرهای فوق می پردازیم :
1 ) کادر پیام یا هشدار ( alert Box)
از کادر alert Box :
از کادر alert Box ، برای اعلام یک پیام یا هشدار به کاربر استفاده می شود . این پیام که از قبل باید تعیین شده باشد ،در یک کادر ظاهر شده و تا زمانی که کاربر دکمه Ok را انتخاب نکند ، از بین نمی رود .
شکل کلی تعریف یک کادر منتی به صورت زیر است :
alert ( " متن پیام یا هشدار " ) ;
مثال : در مثال زیر یک کادر alert Box در تابع Alert_Box تعریف شده است . این تابع توسط دکمه فرمان ! Alert ، فراخوانی شده و کادر پیام خود را ظاهر می کند .
Example |
|
< script
type="text/javascript" > |
کد |
مثال 2 : در مثال زیر یک کادر متن و یک دکمه فرمان قرار داده شده است . کاربر باید یک عدد را در کادر متن وارد کرده و بر روی دکمه فرمان کلیک کند . چنانچه عدد ورودی از 10 کمتر باشد ، برنامه عبارت Welcome to gharbnet.ir را در خروجی چاپ کرده و در غیر این صورت یک کادر پیام با متن Number too big را به کاربر نشان می کند .
Example |
|
< script
type="text/javascript" > |
کد |
نکته : می توان در متن پیام کادرهای جاوا اسکریپت ، به تعداد مورد نیاز خط جدید ایجاد کرد . برای این منظور ، در متن پیام از کاراکتر ' \n ' به شرحی که در مثال زیر آمده است ، استفاده می شود :
Example |
|
< script
type="text/javascript" > |
کد |
2)کادر دریافت تایید ( confirm Box ) :
از کادر دریافت تایید ، برای اعلام
یک پیام به کاربر و دریافت نظر آن مبنی بر قبول یا عدم قبول پیام مورد نظر استفاده
می شود .
این کادر دارای
2 دکمه فرمان OK و Cancel است ، که
در صورت انتخاب گزینه OK ، کادر مقدار
مثبت ( True ) و در
صورت انتخاب گزینه Cancel ، کادر مقدار
منفی ( False ) را به
صفحه بر می گرداند .
شکل کلی تعریف
یک کادر تایید به صورت زیر است :
confirm ( " متن پیام " ) ;
نکته مهم : از مقدار برگشتی یک کادر تایید می توان در برنامه نویسی استفاده کرد . برای این منظور باید مقدار بازگشتی را در یک متغیر به شکل زیر ذخیره کرده و سپس از آن متغیر استفاده کرد . به مثال دقت کنید :
نام متغیر = confirm ( "متن پیام" ) ;
مثال : در مثال زیر یک تابع با یک کادر تایید ، قرار داده شده است . این تابع با دکمه فرمان btnChange ، فراخوانی می شود و کادر تایید خود را نشان می دهد . کادر از کاربر درباره رفتن به صفحه اصلی سایت می پرسد ، که در صورت تایید و فشردن دکمه OK مروگر به صفحه اصلی رفته و در صورت زدن دکمه Cancel یک پیام در خروجی چاپ می کند :
Example |
|
< script
type="text/javascript" > |
کد |
3) کادر دریافت ورودی ( prompt Box )
از کادر دریافت ورودی ، برای اعلام
یک پیام به کاربر و دریافت یک ورودی از وی استفاده می شود . در این حالت یک کادر
حاوی پیام مورد نظر ، یک کنترل متنی برای ورود مقدار ، دکمه OK برای تایید و ارسال مقدار ورودی به
صفحه و دکمه Cancel برای لغو
عملیات کادر ، بر روی صفحه نمایش داده می شود .
همچنین می توان
یک مقدار پیش فرض نیز در کادر تعیین کرد ، که هموراه به صورت پیش فرض در کنترل
متنی کادر نمایش داده خواهد شد . تعیین مقدار پیش فرض اختیاری است .
شکل کلی تعریف
یک کادر دریافت ورودی سه صورت زیر است :
prompt ( " مقدار پیش فرض " , " متن پیام کادر" ) ;
مثال : در مثال زیر یک کادر دریافت ورودی ، برای دریافت نام کاربر در تابع Hello_User تعریف شده است . این تابع با کلیک بر روی دکمه فرمان Enter Name فراخوانی شده و سپس با دریافت نام کاربر یک پیام خوش آمد به کاربر در خروجی اعلام می کند . برای مشاهده خروجی بروی دکمه فرمان Enter Name کلیک کرده و سپس نام خود را در کادر وارد کنید :
Example |
|
< script
type="text/javascript" > |
کد |
مثال : در مثال زیر یک کادر دریافت تایید در تابع Change_page تعریف شده است . این کادر یک ورودی ، که نام یکی از بخش های آموزشی سایت Welcome to gharbnet.ir است ، را از کاربر دریافت کرده و سپس آدرس مرورگر را به آدرس مربوط با آن نام تغییر می دهد . در این کادر مقدار پیش فرض Home Page در نظر گرفته شده است . برای مشاهده خروجی بروی دکمه فرمان کلیک کرده و سپس نام مقصد را انتخاب کنید . در صورت وارد کردن اسم نادرست ، یک کادر هشدار ظاهر خواهد شد :
Example |
|
< script
type="text/javascript" > |
کد |