التحقق من أنواع القيم في البرمجة باستخدام typeof و isNaN
عند تطوير التطبيقات والمواقع الإلكترونية باستخدام لغة JavaScript، يحتاج المبرمج أحيانًا إلى معرفة نوع البيانات التي يتعامل معها أو التحقق من صحة القيم المدخلة من المستخدم. ولهذا توفر JavaScript أدوات مهمة مثل typeof و isNaN() تساعد في فحص القيم والتأكد من نوعها وصحتها قبل استخدامها في العمليات المختلفة.
ما هي أنواع البيانات (Data Types)؟
قبل استخدام أدوات التحقق يجب أن نتعرف على بعض أنواع البيانات الأساسية في JavaScript:
- النوع String مثال على هذا "Hello".
- النوع Number مثال على هذا 100.
- النوع Boolean مثال على هذا true أو false.
- النوع Object مثال على هذا {name: "Ali"}.
- النوع Array مثال على هذا [1,2,3].
- النوع Undefined مثال على هذا undefined.
- النوع Null مثال على هذا null.
طريقة استخدام العامل typeof
تُستخدم الكلمة المفتاحية typeof لمعرفة نوع أي قيمة أو متغير.
الصيغة العامة
typeof value
مثال على النصوص
let name = "Ahmed"; console.log(typeof name);
النتيجة سوف تكون :
string
مثال على الأرقام
let age = 25; console.log(typeof age);
النتيجة
number
مثال على القيم المنطقية
let isStudent = true; console.log(typeof isStudent);
النتيجة
boolean
مثال على المصفوفات
let numbers = [1, 2, 3]; console.log(typeof numbers);
النتيجة
object
ملاحظة: في JavaScript تعتبر المصفوفات نوعًا خاصًا من الكائنات (Objects).
مثال على كائن (Object)
let user = {
name: "Ali",
age: 30
};
console.log(typeof user);
النتيجة
object
مثال على Undefined
let x; console.log(typeof x);
النتيجة
undefined
ملاحظة مهمة حول Null
let value = null; console.log(typeof value);
النتيجة
object
رغم أن القيمة null ليست كائنًا فعليًا، إلا أن هذه نتيجة تاريخية معروفة في JavaScript.
طريقة استخدام الدالة isNaN()
تُستخدم الدالة isNaN() للتحقق مما إذا كانت القيمة ليست رقمًا. كلمة NaN اختصار لـ: Not a Number
مثال بسيط
console.log(isNaN(100));
النتيجة
false
لأن القيمة رقم صحيح.
مثال على نص
console.log(isNaN("Hello"));النتيجة
true
لأن النص لا يمكن تحويله إلى رقم.
مثال على رقم مكتوب كنص
console.log(isNaN("50"));النتيجة:
false
لأن JavaScript تستطيع تحويل "50" إلى الرقم 50.
مثال على إدخال المستخدم
let age = prompt("أدخل عمرك");
if (isNaN(age)) {
console.log("الرجاء إدخال رقم صحيح");
} else {
console.log("تم إدخال عمر صحيح");
}
ماذا يفعل البرنامج؟
- يطلب من المستخدم إدخال العمر.
- يفحص القيمة باستخدام isNaN().
- إذا كانت القيمة ليست رقمًا تظهر رسالة خطأ.
- إذا كانت رقمًا يتم قبولها.
الفرق بين typeof و isNaN
- الـ typeof تتحقق من نوع البيانات أما isNaN تتحقق هل القيمة رقم أم لا.
- الـ typeof تعيد نوع القيمة كنص أما isNaN تعيد true أو false.
- الـ typeof تستخدم مع جميع أنواع البيانات أما isNaN تستخدم غالبًا مع الأرقام.
مثال يجمع بين typeof و isNaN
let value = "123"; console.log(typeof value); console.log(isNaN(value));
النتيجة
string false
- القيمة من نوع String.
- لكنها تمثل رقمًا يمكن تحويله إلى Number.
مثال عملي: التحقق من درجة طالب
let grade = prompt("أدخل الدرجة");
if (isNaN(grade)) {
console.log("الدرجة يجب أن تكون رقمًا");
} else {
if (grade >= 50) {
console.log("ناجح");
} else {
console.log("راسب");
}
}
في هذا المثال:
- يتم التأكد أولًا من أن المدخل رقم.
- بعد ذلك يتم تطبيق شروط النجاح أو الرسوب.
أفضل الممارسات
استخدم typeof عندما تريد معرفة نوع البيانات
typeof username
استخدم isNaN عندما تتعامل مع الأرقام
isNaN(userInput)
لا تعتمد على المدخلات مباشرة تحقق دائمًا من صحة البيانات قبل استخدامها في العمليات الحسابية أو المقارنات.
يُعد استخدام typeof و isNaN() من المهارات الأساسية في JavaScript، حيث يساعدان المبرمج على التحقق من أنواع البيانات وصحة القيم المدخلة. تُستخدم typeof لمعرفة نوع المتغير، بينما تُستخدم isNaN() للتأكد من أن القيمة رقمية وقابلة للاستخدام في العمليات الحسابية. ويساهم إتقان هاتين الأداتين في كتابة برامج أكثر أمانًا واستقرارًا واحترافية.
