Yehia Amin2 نشر 31 مايو أرسل تقرير نشر 31 مايو isNaN(); vS isNaN هلى هى دالة ام قيمة منطقية isNaN(); vS isNaN هلى هى دالة ام قيمة منطقية على هى دالة ام قيمة منطقية؟ Function or Bolean? typeof(isNaN()); 'boolean' typeof(isNaN); 'function' 3 اقتباس
0 Abdulrahman Muhammad نشر 31 مايو أرسل تقرير نشر 31 مايو عند كتابة : typeof(isNaN) فأنت تسأل عن نوع الدالة نفسها دون استدعائها ولذلك ستكون النتيجة "function" لأن isNaN هي دالة مدمجة في JavaScript. أما عندما تكتب : typeof(isNaN()) فأنت هنا تقوم بتنفيذ الدالة أولا ثم تطلب نوع القيمة التي أعادتها. هنا مثلا : isNaN() تعيد قيمة منطقية و هيا true. لذلك : typeof(isNaN()) تعطي "boolean" وهو نوع القيمة التي اعادتها الدالة. بالتوفيق إن شاء الله. اقتباس
0 محمد عاطف25 نشر 31 مايو أرسل تقرير نشر 31 مايو لاحظ الإختلاف كبير جدا . isNaN هي دالة كأى دالة أخرى تقوم بتعريفها والدالة يتم تعريفها من خلال الإسم . فلو أنشأت دالة ووضعت إسمها بدالة typeof ستعيد لك function : function test() { return true; } typeof(test) // function أما وضع الأقواس بعد إسم الدالة فهنا تعني أن يتم تنفيذ الدالة . أى أن الدالة تم تنفيذها وإعادة القيمة بداخل الدالة . وبما أن isNaN تعيد قيمة منطقية true أو false فهنا تجد أنه تم طباعة boolean. إذا isNaN هي دالة أما isNaN() فهنا تم تنفيذ الدالة ويتم إعادة قيمة منطقية boolean أى أن boolean هو نوع القيمة التي تم إعادتها من تنفيذ الدالة. اقتباس
0 عبدالباسط ابراهيم نشر 2 يونيو أرسل تقرير نشر 2 يونيو الأمر يعتمد على كيفية كتابتك لها. الكلمة isNaN بمفردها هي دالة (Function)، بينما isNaN() مع الأقواس تمثل استدعاءً لهذه الدالة، والنتيجة التي تعود منها هي قيمة منطقية (Boolean). ولاحظ أن عندما تكتب isNaN() بدون أي argument، تمرر جافاسكريبت undefined تلقائياً، أي كأنك كتبت isNaN(undefined). وبما أن undefined ليس رقماً، فالدالة ترجع true. وهذا ليس خاصاً بـ isNaN فقط بل ينطبق على أي دالة في JavaScript // typeof الدالة نفسها → دائماً 'function' typeof parseInt // 'function' typeof Math.sqrt // 'function' typeof console.log // 'function' // typeof ناتج الدالة → يعتمد على ما ترجعه الدالة typeof parseInt("5") // 'number' ← لأن parseInt ترجع رقماً typeof Math.sqrt(9) // 'number' ← لأن sqrt ترجع رقماً typeof console.log() // 'undefined' ← لأن console.log لا ترجع شيئاً اقتباس
0 ياسر مسكين نشر 6 يونيو أرسل تقرير نشر 6 يونيو وعليكم السلام ورحمة الله تعالى وبركاته، عندما تكتب typeof isNaN فأنت تشير إلى الدالة نفسها دون تنفيذها فتحصل على 'function' أما عندما تكتب typeof isNaN() فأنت تنفذ الدالة أولا وتقيس نوع ما أعادته فتحصل على 'boolean' لأن isNaN() بدون معامل تمرر JavaScript تلقائيا undefined إليها وبما أن undefined ليس رقما فتعيد true. ونفس المبدأ ينطبق على أي دالة ف typeof parseInt تعطي 'function' بينما typeof parseInt("5") تعطي 'number'، وكذلك typeof Math.sqrt تعطي 'function' بينما typeof Math.sqrt(9) تعطي 'number'، والفرق دائما بين الإشارة إلى الدالة واستدعائها. typeof isNaN // 'function' typeof isNaN() // 'boolean' isNaN() // true isNaN(undefined) // true typeof parseInt // 'function' typeof parseInt("5") // 'number' typeof Math.sqrt // 'function' typeof Math.sqrt(9) // 'number' اقتباس
0 Mustafa Suleiman نشر 18 يونيو أرسل تقرير نشر 18 يونيو isNaN دالة، بينما isNaN() هو استدعاء لها ينتج عنه قيمة منطقية Boolean، بمعنى عندما تكتب الاسم بدون أقواس، فإنك تشير إلى الكائن البرمجي للدالة دون تشغيلها، لذلك عند فحص نوعها باستخدام typeof(isNaN)، يخبرك المتصفح بأن نوعها هو دالة function. وكل شيء في لغة جافاسكريبت هو كائن تقريباً. الأقواس () تعني قم بتشغيل الدالة الآن وأعد النتيجة، لذا عند تشغيل دالة isNaN، وظيفتها هي فحص القيمة وإرجاع قيمة منطقية true أو false، عند استدعائها فارغة كالتالي isNaN()، تقوم الدالة تلقائياً بفحص القيمة undefined لعدم تمرير أي مدخلات، وبما أن undefined ليس رقماً، فإن الدالة ترجع القيمة المنطقية true. لذا عند استخدام typeof(isNaN())، أنت لا تفحص الدالة نفسها، بل تفحص النتيجة التي أعادتها الدالة وهي القيمة true وبما أن true هي قيمة منطقية، فإن الناتج يكون boolean. اقتباس
السؤال
Yehia Amin2
isNaN(); vS isNaN هلى هى دالة ام قيمة منطقية
على هى دالة ام قيمة منطقية؟
Function or Bolean?
5 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.