Shahad Mohammad نشر 3 ديسمبر 2021 أرسل تقرير نشر 3 ديسمبر 2021 كيف اكتب كود يخبرني بنوع القيمة الموجودة داخل النص؟ مثلا "mohammed" الناتج string " 5 " الناتح integer " 5.7 " الناتج double مع التأكيد ان كل القيم السابقة داخل علامات تنصيص 1 اقتباس
0 Adnane Kadri نشر 4 ديسمبر 2021 أرسل تقرير نشر 4 ديسمبر 2021 كدالة مضمنة في جافاسكربت، يمكنك الإستعانة بالدالة typeof التي تقوم بتحديد نوع البيانات الممرر إليها مباشرة، تقوم بإعادة أحد النتائج: typeof {name:'Hsoub', type:'academy'} => Object typeof new Date() => Date typeof [1,2] => Array typeof "string" => String typeof 1.21 => Number typeof true => Boolean typeof null => null typeof x => undefined أما ولخدمة غرضك بالضبط فستحتاجين بعض التخصيص. يمكنك عمل ذلك وفق المنطق التالي : نقوم بعمل دالة تقوم بـ: تحويل أي سلسلة نصية تمرر إليها إلى رقم Number. في كل ما هو ليس رقم أو معبر به عن رقم يتم إرجاع NaN. في حالة المعامل الممرر رقم : يتم التحقق ما ان كان هذا الرقم double أو integer. في حالة لم يكن المعامل الممرر رقم : يتم التحقق من نوعه عن طريق typeof. مثال عملي: function getType(data){ var n = Number(data); if(! Number.isNaN(n)){ if(n === +n && n !== (n|0)) return 'double'; if(n === +n && n === (n|0)) return 'integer'; } else{ return typeof data; } } getType(1); // integer getType("1"); // integer getType(1.5); // double getType("1.5"); // double getType("sara"); // string getType([2,4,42]); // array كتابة أكثر اختصارا: function getType(data){ var n = Number(data); return (n === +n && n !== (n|0)) ? 'double' : (n === +n && n === (n|0)) ? 'integer' : typeof data; } تعرف أكثر عن الأعداد (numbers) في جافاسكربت. 2 اقتباس
0 Shahad Mohammad نشر 4 ديسمبر 2021 الكاتب أرسل تقرير نشر 4 ديسمبر 2021 فهمت الكود شكرا لكن ممكنتوضح معنى هذا السطر (n === +n && n !== (n|0) ? ما معنى ان نضع + أمام المتغير n ؟ وما معنى (n|0) وشكرا 1 اقتباس
0 Adnane Kadri نشر 4 ديسمبر 2021 أرسل تقرير نشر 4 ديسمبر 2021 بتاريخ 33 دقائق مضت قال Shahad Mohammad: فهمت الكود شكرا لكن ممكنتوضح معنى هذا السطر (n === +n && n !== (n|0) ? ما معنى ان نضع + أمام المتغير n ؟ وما معنى (n|0) وشكرا تماثل الكتابة هاته: (n === +n && n !== (n|0)) ? نفس الكتابة: if(n === +n && n !== (n|0)){ } أما عن المعاملين + و | ف: المعامل | في n|0 يستعمل بنفس غرض OR أو || ولكنه يستهدف الأعداد الصحيحة integers، فهاته الكتابة n|0 تعني قم بإعادة 0 في حالة لم يكن العدد n صحيحا integer. المعامل + في n+ فهو ليس إلا إشارة موجبة للتحقق من أن نوع n يماثل نوع n موجبا، فهاته الكتابة n+ تعني موجب n. لنقم بتجزئة الشرط حتى نقوم بفهمه جيدا: if(n === +n && n !== (n|0)) return 'double'; /*//////////////////// لشطر الأول*/ n === +n التحقق من ما ان كانت قيمة n تساوي القيمة الموجبة لـ n. فيما يعني ، أنه ان كان قيمة عددية فسيتم إعادة خطأ وإلا فإن الشرط محقق وصحيح. /*//////////////////// لشطر الثاني*/ n !== (n|0) التحقق من ما ان كان نوع n مساويا لناتج n|0 (يكون الناتج n في حالة كون n عددا صحيحا أو صفرا فيما غير ذلك). إستنتاجات: n مساو لقيمته الموجبة ===> n عدد. (مثال : 5 مساو لـ 5+ و 2.1 أيضا مساو 2.1+) n غير مساو لقيمته الموجبة ===> n ليس عددا. ("hsoub" ليس مساويا لـناتج "hsoub"+ والتي هي NaN). نوع n مساو لناتج n|0 (تذكر: n أو صفر) ===> n عدد صحيح integer. (مثال: 5 مساو لـ ناتج 0|5 والذي هو 5 لأن هذا الأخير صحيح). نوع n غير مساو لناتج n|0 (تذكر: n أو صفر) ===> n عدد عشري double. (مثال: 2.1 غير مساو لناتج 0|2.1 والذي هو 0 لأن هذا الأخير عشري). 1 اقتباس
السؤال
Shahad Mohammad
كيف اكتب كود يخبرني بنوع القيمة الموجودة داخل النص؟
مثلا "mohammed" الناتج string
" 5 " الناتح integer
" 5.7 " الناتج double
مع التأكيد ان كل القيم السابقة داخل علامات تنصيص
3 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.