מדריך | משתנים ב - JS
-
מדריך משתנים ב - JS
אז קודם כל, ברוכים הבאים לסדרת המדריכים לשפת JavaScript! סדרת המדריכים הזאת מיועדת למתחילים, ואני מקווה שתיהנו ממנה. החלטתי לכתוב את סדרת המדריכים הזאת מכמה סיבות. האחת: אם אפשר להועיל לאחרים אז למה לא, והסיבה השנייה: שמתי לב שכשאני כותב מדריך אני בעיקר מועיל לעצמי וזה מאוד מקדם אותי. בקיצור, נצא לדרך.
משתנים
בגאווהסקריפט ישנם שלושה דרכים להגדרת משתנים.
- var
- let
- const
בואו ננסה להבין מה ההבדלים ביניהם.
אז ההבדל בין const לבין השאר ברור. משתנה שהוצהר על ידי const הוא קבוע ואינו ניתן לשינוי, ואילו על ידי var, let הוא ניתן לשינוי.אבל מה ההבדל בין var ל – let?
בכדי להבין את התשובה נצטרך הקדמה קטנה. מהו הסקופ?
אז הסקופ הוא תחום מסויים, שגאווהסקריפט מגבילה את הגישה למשתנים הקיימיים בו. לדוגמה: פונקציה. לפונקציה יש סקופ משל עצמה, וגאווהסקריפט לא נותנת גישה למשתנים שהוגדרו בתוך הפונקציה. מצד שני, הפונקציה יכולה לגשת לסקופ שמעליה. בואו ננסה את זה:var num1 = 1; function getNumber() { return num1; // 1 } function getAnotherNum() { var num2 = 2; } getAnotherNum(); console.log(num2) // num2 is not defined
אבל מה קורה בסקופ שאינו של פונקציה, של לולאה לצורך הענין? כאן יש הבדל בין let ל – var. אם המשתנה הוגדר עם let, הוא לא יהיה מוכר מחוץ לסקופ של הבלוק. אבל אם הוא הוגדר עם var, הוא יהיה מוכר מחוץ לסקופ. וזה לא מוצלח מדי.
for (var i = 0; i < 10; i++ ) { console.log(i); } console.log(i) // 10
כעת נעשה אותו דבר רק עם let.
for (let i = 0; i < 10; i++ ) { console.log(i); } console.log(i) // i is not defined
שימו לב ש const בקטע הזה הוא כמו let, שתחום לסקופ שלו גם בבלוק, ולא רק בפונקציות.
עד כאן משתנים, המשך יבוא בעז"ה.
נ.ב. מומלץ לקרוא את המאמר כאן, בבלוג של @chv התותח. מפרט שם על הנושא הזה. -
-