פונקציית JavaScript לא מוגדרת שגיאה (אבל היא מוגדרת)

Pwnqzyyt Javascript L Mwgdrt Sgy H Bl Hy Mwgdrt



ב-JavaScript, ' פונקציה לא מוגדרת ” היא שגיאה נפוצה המתרחשת כאשר התוכנית מנסה להשתמש בפונקציה שלא הוכרזה או הוגדרה ב-scope הנוכחי. הודעת השגיאה הזו עלולה לבלבל מכיוון שלפעמים הפונקציה למעשה מוגדרת בקוד, אך היא עדיין גורמת לשגיאה.

מאמר זה יתאר את JavaScript 'שגיאה לא מוגדרת' בזמן שהיא מוגדרת.

פונקציית JavaScript לא מוגדרת שגיאה (אבל היא מוגדרת)

לפעמים, הפונקציה מוגדרת בקוד, אבל עדיין, אתה יכול להתמודד עם השגיאה הבאה:









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



סיבה 1: הפונקציה מאויתת שגויה או שגוי באותיות גדולות

לפעמים, הפונקציה נקראת באיות שגוי. מכיוון ש-JavaScript היא שפה הרגישה לאותיות גדולות, מתורגמן JavaScript לא הצליח למצוא זאת ולזרוק את ' פונקציה לא מוגדרת 'שגיאה.





דוגמא

ראשית, נגדיר פונקציה ' סיכום ' שמחזיר את הסכום של שני מספרים ' א ' ו' ב ”:

סיכום פונקציה ( א, ב ) {

לַחֲזוֹר א + ב ;

}

קרא לפונקציה ' סיכום ' כפי ש ' סְכוּם 'על ידי העברת מספרים' 4 ' ו' 7 ”:



לְנַחֵם. עֵץ ( סְכוּם ( 4 , 7 ) )

זה יזרוק שגיאה ' סכום אינו מוגדר ”:

איך לתקן את זה?

כדי לתקן שגיאה זו, ודא ששם הפונקציה מאוית כהלכה ובעל אותיות רישיות נכונות:

לְנַחֵם. עֵץ ( סיכום ( 4 , 7 ) ) ;

עכשיו, הפונקציה ' סיכום ' נקרא בהצלחה והדפיס את הסכום של שני מספרים ' 4 ' ו' 7 ”:

סיבה 2: הפונקציה מוגדרת בהיקף שונה

ב-JavaScript, לכל פונקציה יש את ה-scope שלה, ופונקציה יכולה לגשת רק למשתנים ופונקציות המוגדרות ב-scope שלה. אם פונקציה מוגדרת בהיקף אחר, ייתכן שהיא לא תהיה נגישה לטווח הנוכחי, וכתוצאה מכך ' פונקציה לא מוגדרת 'שגיאה.

דוגמא

הגדר פונקציה ' סְכוּם() ' עם שני פרמטרים ' א ' ו' ב 'בתוך הפונקציה' הדפס() ”:

הדפסת פונקציות ( ) {

סכום פונקציה ( א, ב ) {

לְנַחֵם. עֵץ ( א + ב ) ;

}

}

קרא לפונקציה ' סְכוּם() ”:

סְכוּם ( 5 , 10 ) ;

זה נותן שגיאה כי sum() מוגדר בתוך הפונקציה print() אך נגיש מחוץ ל-scope:

איך לתקן את זה?

ודא שהפונקציה מוגדרת בהיקף המתאים וניתן לגשת אליה מהמקום שבו היא נקראת. לדוגמה, אם הפונקציה מוגדרת בתוך פונקציה אחרת, ייתכן שהיא לא תהיה נגישה מבחוץ.

קרא ל-sum() בתוך הפונקציה print() לאחר הגדרתה:

הדפסת פונקציות ( ) {

סכום פונקציה ( א, ב ) {

לְנַחֵם. עֵץ ( א + ב ) ;

}

סְכוּם ( 1 , 4 ) ;

}

קרא לשיטת print():

הדפס ( ) ;

תְפוּקָה

או שאתה יכול גם להגדיר פונקציה בנפרד ולקרוא לה בהיקף של פונקציה אחרת באופן הבא:

סכום פונקציה ( א, ב ) {

לְנַחֵם. עֵץ ( א + ב ) ;

}

כאן, נקרא ל-sum() בתוך הפונקציה print():

הדפסת פונקציות ( ) {

סְכוּם ( 5 , 10 ) ;

}

קרא למתודה print() כדי לבצע את הפונקציה ' סְכוּם() ”:

הדפס ( ) ;

הסכום של שני מספרים ' 5 ' ו' 10 ' הוצגו:

דנו בסיבות ובפתרונות ל-JavaScript ' שגיאה לא מוגדרת פונקציה ' (אבל זה מוגדר).

סיכום

ישנן שתי סיבות עיקריות מדוע ' פונקציה לא מוגדרת שגיאה מתרחשת לאחר הגדרת הפונקציה, כגון ' הפונקציה מאויתת שגויה או עם אותיות רישיות שגויות ' או ה ' הפונקציה מוגדרת בהיקף שונה '. מאמר זה הגדיר את הסיבות והפתרונות לשגיאת JavaScript 'שגיאה לא מוגדרת' (אבל היא מוגדרת).