كيف تتحقق في JavaScript مما إذا كان المتغير نصًا؟
مرحبًا بالجميع! أنا مبتدئ في JavaScript وواجهت مشكلة. لدي دالة يجب أن تعمل فقط مع القيم النصية. إذا تم تمرير رقم أو كائن، ينهار كل شيء. أحاول التحقق من نوع المتغير باستخدام typeof، لكن النتائج تربكني.
إليك مثال على الكود الخاص بي:
```javascript
function processInput(input) {
if (typeof input === 'string') {
console.log('هذا نص، الطول: ' + input.length);
} else {
console.log('هذا ليس نصًا!');
}
}
processInput('مرحبًا'); // يعمل: "هذا نص، الطول: 6"
processInput(42); // يعمل: "هذا ليس نصًا!"
processInput(new String('اختبار')); // يطبع "هذا ليس نصًا!" — بينما توقعت أنه نص!
processInput(null); // يطبع "هذا ليس نصًا!" — حسنًا
processInput(undefined); // يطبع "هذا ليس نصًا!" — حسنًا
```
المشكلة هي أنه عندما أنشئ نصًا عبر المُنشئ new String()، فإن typeof يُرجع 'object' وليس 'string'. كيف أتحقق بشكل صحيح مما إذا كان المتغير نصًا؟