דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. משתנה מחוץ לפונקציה

משתנה מחוץ לפונקציה

מתוזמן נעוץ נעול הועבר תכנות
7 פוסטים 4 כותבים 216 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • א מנותק
    א מנותק
    אנא
    כתב ב נערך לאחרונה על ידי אנא
    #1

    הדבר הזה לדוגמא עבד לי אפילו כשקראתי לפונקציה בלי להתייחס לשאר

    let i = 1
    
    function y (){
      console.log(i)
    }
    

    ולכאורה הוא אמור לא לעבוד כי המשתנה לא הוכרז עדיין
    כמו למשל כאן

    function e (){
      console.log(g)
      let g = 1
    }
    

    איפה הטעות שלי?
    צילום מסך 2022-08-22 000351.png

    א dovidD 2 תגובות תגובה אחרונה
    0
    • א מנותק
      א מנותק
      אורח פורח
      השיב לאנא ב נערך לאחרונה על ידי
      #2

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

      א תגובה 1 תגובה אחרונה
      -1
      • א מנותק
        א מנותק
        אנא
        השיב לאורח פורח ב נערך לאחרונה על ידי
        #3

        @אורח-פורח אז זה השאלה שלי האם מחוץ לפונקציה הוא מוגדר?
        הרי לא השתמשתי בו

        תגובה 1 תגובה אחרונה
        0
        • dovidD מחובר
          dovidD מחובר
          dovid ניהול
          השיב לאנא ב נערך לאחרונה על ידי
          #4

          @אנא כתב במשתנה מחוץ לפונקציה. תקני?:

          אפילו כשקראתי לפונקציה בלי להתייחס לשאר

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

          מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

          בכל נושא אפשר ליצור קשר dovid@tchumim.com

          א תגובה 1 תגובה אחרונה
          5
          • א מנותק
            א מנותק
            אנא
            השיב לdovid ב נערך לאחרונה על ידי אנא
            #5

            @dovid תודה על התשובה

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

            מנצפכמ dovidD 2 תגובות תגובה אחרונה
            0
            • מנצפכמ מנותק
              מנצפכמ מנותק
              מנצפכ
              השיב לאנא ב נערך לאחרונה על ידי
              #6

              @אנא כתב במשתנה מחוץ לפונקציה:

              לא כדאי להכניס משתנים מחוץ לפונקציה כדי לא להכביד

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

              ספרי קודש בזול | אוטומציות גוגל ימות המשיח ועוד
              pnhspnhs29@gmail.com

              תגובה 1 תגובה אחרונה
              1
              • dovidD מחובר
                dovidD מחובר
                dovid ניהול
                השיב לאנא ב נערך לאחרונה על ידי dovid
                #7

                @אנא כתב במשתנה מחוץ לפונקציה:

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

                בא נבחן במידה ולא היה שום משמעות מבחינת הכבדה.
                במקרה כזה היית תמיד שם בחוץ? לא. כי מה שלא צריך להיות בחוץ זה רע שזה בחוץ.
                בתכנות תמיד מנסים שחלקים יהיו כמה שיותר סגורים בקופסאות. ככה כשיש בעיה מוצאים את הקופסה הבעייתי בקלות ומתקנים/מחליפים אותה. כמה שיותר תלות בין הפונקציה לבין העולם שסביבה, ככה הקוד גרוע וקשה לתחזוקה. לכן בברירת מחדל, משתנים שבשימוש בפונקציה יוכרזו רק איפה שהם נדרשים. נהוג גם למצמצם אפילו בתוך הפוקנציה לתוך הבלוק (if, for וכדומה) הנדרש עם מילת let שמאפשרת את הצמצום.
                משתנה ששמים מחוץ לפונקציה הוא שיתוף/שמירת מידע מעבר לחיי הפונקציה. למשל מונה ביקורים, סביר שתעשה ככה:

                let counter = 0;
                
                function inc(){
                    counter++;
                }
                

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

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

                מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                בכל נושא אפשר ליצור קשר dovid@tchumim.com

                תגובה 1 תגובה אחרונה
                9

                בא תתחבר לדף היומי!
                • התחברות

                • אין לך חשבון עדיין? הרשמה

                • התחברו או הירשמו כדי לחפש.
                • פוסט ראשון
                  פוסט אחרון
                0
                • דף הבית
                • קטגוריות
                • פוסטים אחרונים
                • משתמשים
                • חיפוש
                • חוקי הפורום