דילוג לתוכן המרכזי
מודול 2 · שיעור 3 מתוך 47/32 בקורס~10 min
שיעורי מודול (3/4)

מספרים ומתמטיקה

ב-JavaScript יש רק סוג מספרי אחד: number. שניהם מספרים שלמים ומספרים עשרוניים (נקודה צפה) חיים שם. אין נפרד int / float כמו בשפות אחרות.

JS
typeof 42; // 'number'
typeof 3.14; // 'number'
typeof -0.001; // 'number'
typeof Infinity; // 'number'   ← Infinity is a special number
typeof NaN; // 'number'   ← even "Not a Number" is a number (!)

האובייקט Math הגלובלי

Math אינו פונקציה: הוא אובייקט עם שיטות שימושיות ו קבועים. אתה לא מייצר את זה, אתה משתמש בו ישירות:

JS
Math.min(3, 1, 7); // 1
Math.max(3, 1, 7); // 7
Math.abs(-5); // 5
Math.round(4.5); // 5
Math.floor(4.9); // 4   (always rounds down)
Math.ceil(4.1); // 5   (always rounds up)
Math.sqrt(16); // 4
Math.pow(2, 10); // 1024   (equivalent to 2 ** 10)
Math.PI; // 3.141592653589793

מספרים אקראיים

Math.random() מחזירה עשרוני בין 0 (כלול) ו1 (לא נכלל). כדי לקבל מספר שלם בטווח אתה משתמש בנוסחה קטנה:

JS
// Random integer between 0 and 9
Math.floor(Math.random() * 10);

// Random integer between 1 and 6 (a six-sided die)
Math.floor(Math.random() * 6) + 1;

הכאבים של עשרוניות (נקודה צפה)

JS משתמש בייצוג IEEE-754 64 סיביות, המשותף עם כמעט כולם שפות. זהו ייצוג בינארי, כך שחלק עשרונים לא יכולים להיות מיוצג בדיוק:

JS
0.1 + 0.2; // 0.30000000000000004 (!)
0.1 + 0.2 === 0.3; // false

פתרון סטנדרטי: עגול עם toFixed(n) (שמחזיר מחרוזת) או השתמש במספרים שלמים בסנטים/אלפים כשעובדים עם כסף:

JS
(0.1 + 0.2).toFixed(2); // '0.30' (string)
Number((0.1 + 0.2).toFixed(2)); // 0.3 (number)

נסה את זה

פעילות גופנית#js.m2.l3.e1
ניסיונות: 0טוען...

חישוב שטח מעגל עם רדיוס `r = 5` מעוגל לשני מקומות עשרוניים, כ`מספר`. עבור `r=5` צפוי 78.54.

טוען עורך...
הצג רמז

Math.PI עבור pi, ** עבור אקספוננציה; .toFixed(2) לעגל, מספר(...) כדי להמיר חזרה למספר.

הפתרון זמין לאחר 3 ניסיונות

סקירת התרגיל

פעילות גופנית#js.m2.l3.e2
ניסיונות: 0טוען...

בהינתן שלושה מספרים 12, 7, 23, החזר כביטוי האחרון את ההפרש בין המקסימום למינימום (כלומר 16).

טוען עורך...
הצג רמז

Math.max ו- Math.min מקבלים ארגומנטים מרובים המופרדים בפסיקים.

הפתרון זמין לאחר 3 ניסיונות