שיעורי מודול (4/4)
הקלד המרות
כל הזמן אתה צריך לשנות את הסוג של ערך: ה-value של
קלט HTML מגיע כמחרוזת גם אם הוא מייצג מספר, API
מחזיר מחרוזות לפורמט, עליך לרשום אובייקט כטקסט. JS מציע
שלוש משפחות של המרות: מנתחים מפורשים, ייעודיים, ו-(להיות
נמנע) מרומזים.
המרות מפורשות
אלה הברורים ביותר וצריכים להיות ברירת המחדל שלך:
Number('42'); // 42
Number('3.14'); // 3.14
Number(''); // 0 ← careful
Number(' 10 '); // 10 (spaces are ignored)
Number('ciao'); // NaN ← does not represent a number
String(42); // '42'
String(true); // 'true'
String(null); // 'null'
String(undefined); // 'undefined'
Boolean(1); // true
Boolean(0); // false
Boolean(''); // false
Boolean('abc'); // trueparseInt וparseFloat: מנתחים סובלניים
שלא כמו Number(...), parseInt וparseFloat התעלמו מהלא מספרי
זנב של המחרוזת: הם נעצרים בתו הלא חוקי הראשון.
Number('42px'); // NaN
parseInt('42px'); // 42
parseFloat('3.14em'); // 3.14
parseInt(' 12 anni'); // 12
parseInt('ciao12'); // NaN ← must start with digitstoFixed כדי לעצב מספרים כמחרוזות
נראה בקצרה בשיעור הקודם: מעגל ל-N עשרוניות ומחזיר א מחרוזת.
(3.14159).toFixed(2); // '3.14'
(1).toFixed(2); // '1.00'כדי להמיר אותו בחזרה ל-number, השתמש בקידומת Number(...) או ב-unary
+:
Number((3.14159).toFixed(2)); // 3.14
+(3.14159).toFixed(2); // 3.14NaN: הערך הנושך
NaN ("לא מספר") נוצר על ידי פעולות מספריות שנכשלות:
Number('ciao'); // NaN
0 / 0; // NaN
parseInt('xxx'); // NaNמאפיינים:
- יש לו סוג
'number'(כן, "לא מספר" הוא מספר) - זה לא שווה לעצמו:
NaN === NaNהואfalse - כדי לבדוק את זה השתמש בפונקציה
Number.isNaN(x)
const x = Number('ciao');
x === NaN; // false (!)
Number.isNaN(x); // trueנסה את זה
בהינתן המחרוזת '128.95 EUR', חלץ את המספר (העשרוני) ועיגל אותו למספר השלם הקרוב, והחזר אותו כמספר. צפוי: 129.
הצג רמז
parseFloat מתעלם מ-'EUR'; .toFixed(0) מעגל למספר שלם כמחרוזת; מספר(...) ממיר חזרה למספר.
הפתרון זמין לאחר 3 ניסיונות
סקירת התרגיל
בהינתן `n = Number('non un numero')`, כתוב ביטוי בודד המוערך כ-true אם התוצאה היא NaN.
הצג רמז
השתמש ב- Number.isNaN, לא n === NaN: NaN אינו שווה לעצמו.
הפתרון זמין לאחר 3 ניסיונות