في JavaScript ، يمكنك تحويل قيمة السلسلة إلى رقم بالطرق الثلاث التالية:
1. رقم الاتصال () لتحويل نوع القيمة للسلسلة.
2.parseint ().
3.Parsefloat ().
رقم()
يعد استخدام دالة الرقم () لإلقاء السلسلة الطريقة الأكثر وضوحًا. ومع ذلك ، فإن هذا النهج له قيود واحدة: إذا قطعت السلسلة من البداية وإنهاء أحرف المسافة البيضاء وليست سلسلة رقمية خالصة ، فإن النتيجة النهائية هي NAN. ذكر JavaScript من David Flanagan الدليل النهائي الإصدار السادس ، القسم 3.8.2 أنه عند استخدام الدالة الرقم () لإجراء تحويل من سلسلة إلى رقم ، تقبل الوظيفة فقط السلاسل العشرية ، لكن نتائج الاختبار تظهر أن هذا ليس هو الحال. يمكن أن تقبل وظيفة الرقم () "0xFF" كمعلمة وتحويلها إلى قيمة رقمية قدرها 255.
نسخة الكود كما يلي:
var a = "42" ؛
var b = "42mm" ؛
var c = "0xff" ؛
var d = "42.34" ؛
console.log (رقم (أ)) ؛ // 42
console.log (رقم (ب)) ؛ // نان
console.log (رقم (ج)) ؛ // 255
console.log (رقم (د)) ؛ // 42.34
Parseint ()
يمكن أن تقوم وظيفة parseint () بتحويل سلسلة إلى عدد صحيح. بالمقارنة مع وظيفة الرقم () ، فإن وظيفة ParseInt () لا يمكن فقط تحليل السلاسل الرقمية الخالصة ، ولكن أيضًا تحليل السلاسل الرقمية الجزئية التي تبدأ بالأرقام (ستتم إزالة السلاسل الجزئية غير الرقمية أثناء عملية التحويل). تجدر الإشارة إلى أنه عندما تقوم الدالة Parseint () بتوصيف سلسلة نقطة عائمة ، فإن الطريقة المستخدمة في التقريب هي "اقتطاع".
بالإضافة إلى السلسلة باعتبارها المعلمة الأولى ، يمكن أن تقبل وظيفة Parseint () أيضًا أي عدد صحيح بين 2 و 36 كمعلمة ثانية لتحديد عدد الأقسام أثناء عملية التحويل.
نسخة الكود كما يلي:
var b = "42mm" ؛
var c = "0xff" ؛
var x = "-12.34" ؛
var y = "15.88" ؛
var z = "101010" ؛
console.log (parseint (b)) ؛ // 42
console.log (parseint (x)) ؛ //-12
console.log (parseint (y)) ؛ // 15
console.log (parseint (c)) ؛ // 255
console.log (parseint (Z ، 2)) ؛ // 42
console.log (parseint (". 1")) ؛ // nan
parsefloat ()
مثل ParseInt () ، يمكن لـ Parsefloat () أيضًا تحليل السلاسل الرقمية الجزئية التي تبدأ بالأرقام (ستتم إزالة السلاسل الجزئية غير الرقمية أثناء عملية التحويل). على عكس Parseint () ، يمكن لـ Parsefloat () تحويل السلسلة إلى رقم نقطة عائم ؛ ولكن في الوقت نفسه ، يقبل Parsefloat () معلمة واحدة فقط ويمكنه معالجة السلاسل العشرية فقط.
نسخة الكود كما يلي:
var c = "0xff" ؛
var d = "42.34" ؛
console.log (parsefloat (c)) ؛ // 0 ، لأن "0xff" ابدأ بـ 0
console.log (parsefloat (d)) ؛ // 42.34
console.log (parsefloat (". 1")) ؛ // 0.1