جاري التحميل...

القيم truthy و falsy

تعرف الآن تحويل القيم بـ String() وNumber() وBoolean(). المهارة التالية: كيف تتصرف تلك القيم داخل قرار — حتى قبل درس if / else الكامل. القيم التي تتصرف كـ «لا» تُسمّى falsy. تقريباً كل ما عداها truthy. احفظ قائمة falsy القصيرة مرة واحدة؛ ستوفّر كثيراً من الحيرة لاحقاً.

ما معنى truthy و falsy في JavaScript؟

falsy يعني: في الشرط يعاملها JavaScript مثل false. truthy يعني: مثل true. ليست نوع بيانات جديداً — نفس الأرقام والنصوص التي تعرفها. عاين بـ Boolean(value) أو اكتب if (value) واترك المحرك يطبّق نفس القاعدة. للمبتدئ تكفي قائمة falsy؛ الباقي غالباً truthy.

قائمة falsy

📊 قيم falsy يجب أن تعرفها

القيمة لماذا تبدو «فارغة / لا» ملاحظة
false النفي المنطقي كلمة مفتاحية
0 صفر رقمي وكذلك -0
"" نص فارغ طول صفر
null فراغ مقصود من درس سابق
undefined لا قيمة بعد من درس سابق
NaN رقم فاشل typeof ما زال "number"

هذه القائمة تكفي للبداية. احفظ falsy لا كتالوجاً لا نهائياً من truthy. إن لم تكن القيمة في القائمة، اعتبرها truthy حتى يقول درس لاحق غير ذلك.

شاهد falsy مع Boolean()

Boolean(...) معاينة واضحة. كل عنصر في القائمة يصبح false.

خريطة falsy مع Boolean()

javascript
console.log(Boolean(false));
console.log(Boolean(0));
console.log(Boolean(""));
console.log(Boolean(null));
console.log(Boolean(undefined));
console.log(Boolean(NaN));

للمبتدئ، الافتراضي truthy

النصوص غير الفارغة ومعظم الأرقام وtrue نفسه truthy. المفاجآت الأولى غالباً نصوص تبدو كـ «لا» لكن فيها أحرف.

عينات truthy للمبتدئ

javascript
console.log(Boolean(1));
console.log(Boolean(-3));
console.log(Boolean("hi"));
console.log(Boolean("0"));
console.log(Boolean("false"));
console.log(Boolean(" "));

"0" و"false" truthy لأنهما نص غير فارغ. المسافة الواحدة " " أيضاً truthy — بين النصوص العادية فقط "" (طول صفر) falsy.

if بلا استدعاء Boolean()

if (value) البسيط يستخدم نفس القاعدة. لا تحتاج if (Boolean(value)). أسلوب التفريع الكامل يأتي لاحقاً؛ هنا فقط بوابة نعم/لا.

if يستخدم truthy و falsy

javascript
let name = "Ada";
if (name) {
console.log("name is truthy");
}

let empty = "";
if (empty) {
console.log("will not run");
} else {
console.log("empty string is falsy");
}

فخاخ النص: "0" و "false"

النماذج وواجهات API غالباً ترسل نصاً. النص "0" ليس الرقم 0. النص "false" ليس المنطقي false. كلاهما truthy.

فخاخ نص تبدو falsy

javascript
console.log(Boolean("0"));
console.log(Boolean(0));
console.log(Boolean("false"));
console.log(Boolean(false));
console.log("0" === 0);

النص الفارغ مقابل مسافة واحدة

بين النصوص العادية فقط "" بطول صفر هو falsy. المسافة ما زالت محتوى.

النص الفارغ مقابل مسافة واحدة

javascript
console.log(Boolean(""));
console.log(Boolean(" "));
console.log("".length);
console.log(" ".length);

تحكّم برسالة الصفحة بقيمة واحدة

قرّر ماذا يرى الزائر بقيمة واحدة. غيّرها وحدّث الصفحة.

بوابة الصفحة مع truthy / falsy

html
<!DOCTYPE html>
<html>
<head>
<title>Truthy falsy — page gate</title>
</head>
<body>
<p id="msg">…</p>
<script>
let user = "Sam";
let box = document.getElementById("msg");
if (user) {
box.textContent = "Hello, " + user;
} else {
box.textContent = "Please sign in";
}
</script>
</body>
</html>

اجعل user يساوي "" أو null ثم حدّث؛ تتحول الرسالة إلى سطر تسجيل الدخول. نفس قاعدة falsy — على الصفحة.

جرّبها بنفسك

  1. اطبع Boolean لكل عنصر في قائمة falsy.
  2. اطبع Boolean("0") وBoolean(0) جنباً إلى جنب.
  3. اطبع Boolean(" ") وBoolean("") — مسافة مقابل فارغ.
  4. اكتب if (score) صغيراً مع score = 0 ثم مع score = 5.
  5. في عرض HTML اجعل user = "" وحدّث واقرأ الرسالة.
  6. غيّر user إلى "0" ولاحظ أن التحية ما زالت تعمل (نص truthy).

أخطاء شائعة

  • اعتبار "false" أو "0" قيم falsy — كلاهما نص غير فارغ
  • الظن أنك يجب دائماً لف Boolean() — if (value) يحوّل أصلاً
  • حفظ كل قيم truthy بدل قائمة falsy القصيرة
  • خلط الرقم 0 (falsy) مع النص "0" (truthy)
  • نسيان null أو undefined أو NaN من القائمة

ملخص

  • falsy: يتصرف كـ false في الشرط — احفظ القائمة القصيرة
  • truthy: يتصرف كـ true — معظم القيم اليومية
  • عاين بـ Boolean(value) أو استخدم if (value) مباشرة
  • فخاخ النص: "0" و"false" قيم truthy
  • التالي: العوامل — رموز للحساب والمقارنة

🧠 اختبر معرفتك

جاهز للبدء

اختبر معرفتك

تحدى نفسك مع هذا الاختبار التفاعلي واكتشف مدى فهمك للموضوع

❓
8
الأسئلة
🎯
70%
للنجاح
♾️
∞
الوقت
🔄
∞
المحاولات

📝 التعليمات

  • اقرأ كل سؤال بعناية
  • اختر أفضل إجابة لكل سؤال
  • يمكنك إعادة الاختبار عدة مرات كما تريد
  • سيتم عرض تقدمك في الأعلى