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

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

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

עזרה בקוד js

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

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

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

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

      let a = prompt("First number?", 1);
      let b = prompt("Second number?", 2);
      
      alert(a + b);
      
      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
      • ElhananE Elhanan

        @מאיר-הנאו הבעיה בקוד שקופה, ולכן הפתרון עבורה יהיה מאוד קל.
        הסיבה שהקוד לא עובד היא כיוון שההנחיה שכתבת מחזירה לדפדפן את הקלט שהמשתמש מזין כמחרוזת (סטרינג), וזה בגלל המילה 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);
        
        צדיק תמיםצ מנותק
        צדיק תמיםצ מנותק
        צדיק תמים
        כתב ב נערך לאחרונה על ידי צדיק תמים
        #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
        • צדיק תמיםצ צדיק תמים

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

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

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

          מ מנותק
          מ מנותק
          מאיר הנאו
          כתב ב נערך לאחרונה על ידי
          #4

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

          צדיק תמיםצ תגובה 1 תגובה אחרונה
          1
          • מ מאיר הנאו

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

            צדיק תמיםצ מנותק
            צדיק תמיםצ מנותק
            צדיק תמים
            כתב ב נערך לאחרונה על ידי צדיק תמים
            #5

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

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

            תגובה 1 תגובה אחרונה
            4
            • dovidD dovid העביר נושא זה מ-תכנות ב-
            תגובה
            • תגובה כנושא
            התחברו כדי לפרסם תגובה
            • מהישן לחדש
            • מהחדש לישן
            • הכי הרבה הצבעות


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

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

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