شرح صفوف ومحتوى الفقرة
فحص الشرط obj.discount !== undefined يعجز عن التفرقة بين خاصية غائبة تماماً وخاصية موجودة أُسندت إليها القيمة undefined. لذلك وفرت اللغة أداتين متخصصتين، تتفوق ثانيتهما أمنياً:
| أداة الفحص | الخصائص الذاتية المباشرة | الخصائص الموروثة مثل "toString" |
|---|---|---|
"key" in obj | ترجع true | ترجع true (تفتش السلسلة الموروثة) |
Object.hasOwn(obj, "key") | ترجع true | ترجع false (فحص ذاتي آمن ودقيق) |