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

הקלד המרות

כל הזמן אתה צריך לשנות את הסוג של ערך: ה-value של קלט HTML מגיע כמחרוזת גם אם הוא מייצג מספר, API מחזיר מחרוזות לפורמט, עליך לרשום אובייקט כטקסט. JS מציע שלוש משפחות של המרות: מנתחים מפורשים, ייעודיים, ו-(להיות נמנע) מרומזים.

המרות מפורשות

אלה הברורים ביותר וצריכים להיות ברירת המחדל שלך:

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'); // true

parseInt וparseFloat: מנתחים סובלניים

שלא כמו Number(...), parseInt וparseFloat התעלמו מהלא מספרי זנב של המחרוזת: הם נעצרים בתו הלא חוקי הראשון.

JS
Number('42px'); // NaN
parseInt('42px'); // 42
parseFloat('3.14em'); // 3.14
parseInt('   12 anni'); // 12
parseInt('ciao12'); // NaN  ← must start with digits

toFixed כדי לעצב מספרים כמחרוזות

נראה בקצרה בשיעור הקודם: מעגל ל-N עשרוניות ומחזיר א מחרוזת.

JS
(3.14159).toFixed(2); // '3.14'
(1).toFixed(2); // '1.00'

כדי להמיר אותו בחזרה ל-number, השתמש בקידומת Number(...) או ב-unary +:

JS
Number((3.14159).toFixed(2)); // 3.14
+(3.14159).toFixed(2); // 3.14

NaN: הערך הנושך

NaN ("לא מספר") נוצר על ידי פעולות מספריות שנכשלות:

JS
Number('ciao'); // NaN
0 / 0; // NaN
parseInt('xxx'); // NaN

מאפיינים:

  • יש לו סוג 'number' (כן, "לא מספר" הוא מספר)
  • זה לא שווה לעצמו: NaN === NaN הוא false
  • כדי לבדוק את זה השתמש בפונקציה Number.isNaN(x)
JS
const x = Number('ciao');
x === NaN; // false (!)
Number.isNaN(x); // true

נסה את זה

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

בהינתן המחרוזת '128.95 EUR', חלץ את המספר (העשרוני) ועיגל אותו למספר השלם הקרוב, והחזר אותו כמספר. צפוי: 129.

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

parseFloat מתעלם מ-'EUR'; .toFixed(0) מעגל למספר שלם כמחרוזת; מספר(...) ממיר חזרה למספר.

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

סקירת התרגיל

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

בהינתן `n = Number('non un numero')`, כתוב ביטוי בודד המוערך כ-true אם התוצאה היא NaN.

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

השתמש ב- Number.isNaN, לא n === NaN: NaN אינו שווה לעצמו.

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