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

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

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

עזרה בקוד js

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

    שלום וברכה,
    יצרתי קוד קטן שאמור לבצע חישוב ע"ג הדפדפן, עם ערכי ברירת מחדל 1 ו 2.
    בפועל הקוד לא עובד, והתוצאה היא 12 במקום 3.
    השאלה איפה הטעות
    תודה רבה
    מצורף הקוד:

    let a = prompt("First number?", 1);
    let b = prompt("Second number?", 2);
    
    alert(a + b);
    
    ElhananE תגובה 1 תגובה אחרונה
    0
    • ElhananE מנותק
      ElhananE מנותק
      Elhanan
      השיב למאיר הנאו ב נערך לאחרונה על ידי Elhanan
      #2

      @מאיר-הנאו הבעיה בקוד שקופה, ולכן הפתרון עבורה יהיה מאוד קל.
      הסיבה שהקוד לא עובד היא כיוון שההנחיה שכתבת מחזירה לדפדפן את הקלט שהמשתמש מזין כמחרוזת (סטרינג), וזה בגלל המילה prompt שגורמת לדפדפן לחשוב שמדובר במחרוזת, ולא במספר, ולכן הוא מפענח את הקוד ככה:

      let a = "1";
      let b = "2"; 
      alert(a + b);
      

      וכיוון שכן, כשיש לדפדפן שני מחרוזות שמכילות מספר הוא מחבר את שני המספרים יחד, ונותן תוצאה שגויה של 12.

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

      let a = +prompt("First number?", 1);
      let b = +prompt("Second number?", 2);
      
      alert(a + b);
      

      פורום איש את רעהו|חיתוך שירים|בלוג|מקצר קישורים|ביו

      צדיק תמיםצ תגובה 1 תגובה אחרונה
      16
      • צדיק תמיםצ מנותק
        צדיק תמיםצ מנותק
        צדיק תמים
        השיב לElhanan ב נערך לאחרונה על ידי צדיק תמים
        #3

        @יושב-אוהלים אמר בעזרה בקוד js:

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

        ליתר דיוק בגלל שprompt מחזיר תמיד סטרינג.
        אגב לא הכרתי את השימוש בUnary plus להמרת סטרינג למספר, תמיד השתמשתי בparseInt
        עריכה: נראה שיש יתרונות לכאן ולכאן - לדוגמה צורת הטיפול במספר עשרוני (יש בקישור הנ"ל טבלה מקיפה) :
        f735e6d2-ad4f-471d-82dd-c0bcd2cab767-image.png

        Don’t comment bad code — rewrite it." — Brian W. Kernighan and P. J. Plaugher"
        טיפים

        מ תגובה 1 תגובה אחרונה
        8
        • מ מנותק
          מ מנותק
          מאיר הנאו
          השיב לצדיק תמים ב נערך לאחרונה על ידי
          #4

          @צדיק-תמים יש דרך לעגל תמיד את המספר לכיוון למעלה/למטה?
          לדוגמא, שאם אני יכתוב 3.4 זה יתעגל לשלש, ואם אני יכתוב 3.6 זה יתעגל ל4.
          יש דבר כזה? תודה רבה!

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

            @מאיר-הנאו ()Math.round
            חיפוש גוגל פשוט באנגלית היה מביא לך את התשובה בקלות רבה... (אפשר להיעזר בגוגל טרנסלייט)

            Don’t comment bad code — rewrite it." — Brian W. Kernighan and P. J. Plaugher"
            טיפים

            תגובה 1 תגובה אחרונה
            4
            • dovidD dovid העביר נושא זה מ-תכנות ב-

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

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

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