ماڈیول اسباق (4/4)
تبادلوں کی قسم
ہر وقت آپ کو قدر کی قسم کو تبدیل کرنے کی ضرورت ہوتی ہے: value کا
ایک HTML ان پٹ سٹرنگ کے طور پر آتا ہے یہاں تک کہ اگر یہ ایک نمبر، ایک API کی نمائندگی کرتا ہے۔
سٹرنگز کو فارمیٹ میں لوٹاتا ہے، آپ کو کسی شے کو بطور ٹیکسٹ لاگ کرنے کی ضرورت ہے۔ جے ایس پیش کرتا ہے۔
تبادلوں کے تین خاندان: واضح، سرشار تجزیہ کار، اور (ہونا
اجتناب شدہ) مضمر۔
واضح تبادلے۔
یہ سب سے واضح ہیں اور آپ کا ڈیفالٹ ہونا چاہئے:
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 کے برعکس غیر عددی کو نظر انداز کریں
تار کی tail: وہ پہلے غلط حرف پر رک جاتے ہیں۔
Number('42px'); // NaN
parseInt('42px'); // 42
parseFloat('3.14em'); // 3.14
parseInt(' 12 anni'); // 12
parseInt('ciao12'); // NaN ← must start with digitsنمبروں کو سٹرنگ کے طور پر فارمیٹ کرنے کے لیے toFixed
پچھلے سبق میں مختصر طور پر دیکھا گیا: N اعشاریہ پر راؤنڈ اور واپسی a سٹرنگ۔
(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 === NaNisfalse - اسے جانچنے کے لیے فنکشن کا استعمال کریں
Number.isNaN(x)
const x = Number('ciao');
x === NaN; // false (!)
Number.isNaN(x); // trueاسے آزمائیں
سٹرنگ '128.95 EUR' کو دیکھتے ہوئے، (اعشاریہ) نمبر کو نکالیں اور اسے ایک عدد کے طور پر واپس کرتے ہوئے قریب ترین عدد پر گول کریں۔ متوقع: 129۔
اشارہ دکھائیں۔
parseFloat 'EUR' کو نظر انداز کرتا ہے؛ .to فکسڈ(0) ایک سٹرنگ کے طور پر ایک عدد میں راؤنڈ؛ نمبر(...) واپس ایک نمبر میں بدلتا ہے۔
3 کوششوں کے بعد حل دستیاب ہے۔
ورزش کا جائزہ لیں۔
`n = نمبر('non un numero')` کو دیکھتے ہوئے، ایک واحد ایکسپریشن لکھیں جو درست ہونے کی صورت میں نتیجہ NaN ہے۔
اشارہ دکھائیں۔
Number.isNaN استعمال کریں، n === NaN نہیں: NaN خود کے برابر نہیں ہے۔
3 کوششوں کے بعد حل دستیاب ہے۔