הנך נמצא: מדריך בסיסי / שיעור 4 / דף 13
 


המדריך של תאו ל- JavaScript
 


דפים בשיעור זה:
1: הקדמה לשיעור 4
2: מבוא ללולאות
3: לולאות סיסמא
4: עוד על לולאות while
5: לולאות for
6: לולאות מקוננות
7: תרגילי לולאות
8: מערכים
9: מערכים ולולאות
10: מערכים ב- DOM
11: פונקציות
12: פונקציות void
13: פרמטרים
14: פונקציות פרמטרים
15: תרגול פונקציות
16: סיכום שיעור 4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|

שיעור 4

דף 13: פרמטרים וערכים חוזרים.

למרות שפונקציות ללא פרמטרים, חוסכים בתווים של הקלדה ונראים הרבה יותר טוב, פונקציות עם פרמטרים הן הרבה יותר יעילות.

בדוגמא האחרונה, הייתה לנו בעיה כאשר מתודת ה- getMinutes וה- getSeconds גרמה להחזרת מספרים קטנים מ- 10 מאובייקט ה- date. אנחנו רוצים שהם יחזרו כ- "04" במקום רק "4".

יכלנו לכתוב משהו דומה לזה:


var the_minute = the_date.getMinutes();
if (the_minute < 10)
{
  the_minute = "0" + the_minute;
}

var the_second = the_date.getSeconds();
if (the_second < 10)
{
  the_second = "0" + the_second;
}
                

הקוד היה עובד מצוין. שים לב, שאנחנו בעצם כותבים את אותו הקוד פעמיים: לכל מספר שקטן מ- 10 הדבק "0" לפניו (פעם עבור דקות ופעם עבור שניות). כאשר אתה שם לב שאתה בעצם כותב את אותו הקוד כמה פעמים, כדאי לך להתחיל לחשוב על פונקציה שתעשה זאת עבורך. במקרה זה, כתבתי פונקציה שנקראת: ()fixNumber.

function fixNumber(the_number) { if (the_number < 10) { the_number = "0" + the_number; } return the_number; }

לפונקציה fixNumber יש פרמטר אחד, שנקרא: the_number. פרמטר הוא בעצם משתנה שמוצב כאשר מפעילים פונקציה. במקרה הזה אם נקרא לפונקציה כך:

var fixed_variable= fixNumber(4);

הפרמטר:the_number מקבל את הערך 4 בתוך הפונקציה. הגוף של הפונקציה fixNumber כבר אמור להראות לך הגיוני. משמעות הגוף היא: "אם המשתנה the_number הוא פחות מ- 10, עליך להוסיף "0" לפניו". הדבר היחידי ששונה הוא פקודת ההחזרה: return the_number. משתמשים בפקודה זו, כאשר קוראים לפונקציה כך:

var some_variable=someFunction();

המשתנה some_variable, מקבל את הערך שמוחזר על ידי פונקציית ה- ()someFuncation. ב-fixNumber כתבתי: "return the_number;". זה מוציא אותנו מהפונקציה ומחזיר את הערך של המשתנה the_number למקום שממנו נקראה הפונקציה. כך שאם כתבתי:

var fixed_variable= fixNumber(4);

אז the_number יקבל את הערך ההתחלתי 4, בפונקציה שנקראה. ובגלל ש- 4 הוא פחות מ- 10, אזthe_number ישתנה ל-"04". אז the_number החדש יוחזר, והמשתנה fixed_variable יקבל את ערכו "04".

על מנת לשלב את fixNumber בתוך הפונקציה המקורית announceTime, עשיתי את השינויים הבאים:


function announceTime()
{
  //get the date, the hour, minutes, and seconds
  var the_date = new Date();

  var the_hour = the_date.getHours();
  var the_minute = the_date.getMinutes();
  var fixed_minute = fixNumber(the_minute);
  var the_second = the_date.getSeconds();
  var fixed_second = fixNumber(the_second);

  //put together the string and alert with it
  var the_time = the_hour + ":" + fixed_minute + ":" + fixed_second;
  alert("The time is now: " +the_time);
}                

בוא נאמר שהשעה היא 12:04:05 כאשר אתה לוחץ על הלינק. אנחנו נקבל את התאריך ע"י שימוש ב-"new ()Date", ואז את השעה ע"י קריאה למתודה ()getHours, שלא מצריכה שום תיקון. אז נקבל את הדקות כמו קודם, שבמקרה הזה הן המספר 4. נפעיל את fixNumber עם הפרמטר the_minute:

var fixed_minute=fixNumber(the_minute);

כאשר ה-()fixNumber נקרא, הפרמטר the_number מקבל את הערך של the_minute. במקרה הזה, בגלל ש-the_minute הינו 4, the_number יהיה שווה ל- 4. כאשר הפרמטר מוצב, אנחנו נכנסים לגוף הפונקציה. בגלל ש- 4 הוא פחות מ- 10, the_number ישונה ל-"04" והוא יוחזר ע"י פקודת return. כאשר יוחזר "04" ע"י fixNumber, המשתנה fixed_minute, יהיה שווה ל"04".

אם הבנת את האמור, זה אמור להראות כך!

בוא נעבור צעד אחר צעד, ואז נעשה את התרגיל הבא. הנח שהשעה היינה 12:04:05.

נתחיל עם הפונקציה ()announceTime:

1. the_minute = the_date.getMinutes();
   the_minute = 4 ,כעת.

2. fixed_minute = fixNumber(the_minute);
   fixed_minute והחזר את ערכה לתוך fixNumber קרא לפונקציה.

עכשיו אנחנו בפונקציה ()fixNumber:

3. function fixNumber(the_number)
   4. if (the_number < 10) { the_number = "0" + the_number; }
   "04" הוא עכשיו the_number כיוון ש- 4 קטן מ 10, ערכו של.
5. return the_number
   "04" הפונקציה מסיימת ומחזירה.

הפונקציה ()fixNumber סיימה, אז אנו חוזרים אל הפונקציה ()announceTime:

6. "04" הוא עכשיו fixed_minute.

הדוגמא הנ"ל השתמשה בפונקציה עם פרמטר אחד בלבד. אתה יכול להשתמש בכמה פרמטרים שאתה רוצה. בשיעור הבא תראה דוגמא לפונקציה, שמקבלת שני מערכים ומחזירה את רשימת האלמנטים המשותפים לשני המערכים.

חזור לתחילת הדף

לדף הבא «--

 
       
       
   
 
 

עמוד ראשי
מדריך בסיסי
מדריך מתקדם
החלפת תמונות
גניבת קוד
מפת האתר