נגישות       נגישות
שינוי גודל טקסט:
א א א
שינוי צבעי האתר:
? מקשי קיצור:

לחיצה חוזרת ונשנית על המקש Tab תעביר אתכם בין הקישורים והאזורים השונים בעמוד.

הפעלת מקשי הקיצור תלויה בדפדפן שבו אתם משתמשים.

Internet Explorer, Chrome ובגרסאות ישנות של Firefox: לחצו על מקש Alt ועל מקש המספר או האות על-פי הרשימה. ב Firefox 3 ומעלה: לחצו על המקשים Alt + Shift + המספר או האות.

S - עבור לתוכן הדף
L - חיפוש
1- עמוד הבית
2 - פרוייקטים
3 - מדריכים
4 - אודות
5 - צרו קשר
6 - הצהרת נגישות
 

משתנים מקומיים וגלובאליים ב-JavaScript

מחבר:
בתאריך:

משתנים יכולים להיות מקומיים או גלובאליים.

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

זה מספיק חשוב כדי שנחזור על זה שוב:

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

האיור הבא יכול לסייע בהבנת ההבדל שבין משתנים מקומיים לגלובאליים.

global var x
 
function example( ) {
      local var y
}

 

הבנת ההבדל בין משתנים מקומיים וגלובאליים, והאופן שבו משתנים מוגדרים ב-javascript הוא אחד הדברים החשובים ביותר לכל מפתח javascript. הבנת הנושא הזה יכולה לחסוך מכם שעות רבות של ייסורים, ולכן אני ממליץ לכם להקדיש זמן, וללמוד את הדוגמאות הבאות באופן היסודי ביותר.

 

משתנה גלובאלי

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

בדוגמה הבאה, המשתנה x מוכרז מחוץ לפונקציה, ואפשר לעשות עליו alert גם בתוך הפונקציה.

var x = 1;

function example1() {
    alert( x );
}

example1();

 

2. משתנה מקומי לפונקציה

ניתן לדרוס את המשתנה הגלובאלי באמצעות משתנה מקומי (לוקלי) שניתן לגשת אליו רק בתוך הפונקציה, ולא מחוץ לפונקציה.

var x = 1;

function example2() {
    var x = 2;
    alert ("inside: " + x); // inside: 2
}

alert ("outside: " + x); // outside: 1

example2();

פרמטרים שמועברים לפונקציה הם מקומיים לפונקציה, ולפיכך משפיעים רק בתוך הפונקציה.

var x = 1;

function example3( x ) {
    alert ("inside: " + x); // inside: 2
}

example3( 2 );

alert ("outside: " + x); // outside: 1

 

3. אין השפעה לבלוקים

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

var x = 1;

function example4() {
    if( 1 + 1 == 2 ) {
        var a = 4;
    }

    alert( a ); // 4
}

example4();

 

4. משהו שרצוי להמנע ממנו כמה שניתן

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

בדוגמה הבאה, אף שהמשתנה מוגדר בתוך הפונקציה, הוא דורס את המשתנה באותו שם שהוגדר ברמה הגלובאלית. זה בגלל ש-x מוגדר בתוך הפונקציה ללא var.

var x = 1;

function example2() {
    x = 2;
    alert ("inside: " + x); // inside: 2
}

alert ("outside: " + x); // outside: 2

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

 

לסיכום

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

במדריך הבא, נלמד כיצד לגשת ולטפל בטפסים באמצעות JavaScript.

לכל מדריכי ה-javascript

הוסף תגובה חדשה

 

= 3 + 2