متد hasOwnProperty() - آزمون آنلاین جاوااسکریپت
این آزمون آنلاین در مورد زبان برنامهنویسی جاوااسکریپت و به طور مشخص متد hasOwnProperty() هست. در این آزمون قراره دانش و مهارتت رو در مورد این متد کاربردی بسنجی. پس اگه آمادهای، بزن بریم!
آشنایی با متد hasOwnProperty() در جاوااسکریپت
متد hasOwnProperty() یکی از ابزارهای فوقالعاده مهم در جاوااسکریپته که بهت کمک میکنه مطمئن بشی که یک شیء، یک خصوصیت رو مستقیماً و نه از طریق زنجیره پروتوتایپ خودش، داره.
این یک نکته خیلی کلیدیه. شاید بپرسی خب مگه چه فرقی میکنه؟ فرقش اینجاست که اگه یک خصوصیت رو از طریق ارثبری داشته باشی، hasOwnProperty() بهت false برمیگردونه و این دقیقاً همون چیزیه که خیلی وقتا دنبالش میگردی.

برای اینکه بهتر متوجه بشی، بیا یک مثال رو با هم بررسی کنیم. فرض کن یک شیء به اسم user داری که یک خصوصیت به اسم name داره. اگه بخوای ببینی این خصوصیت واقعاً روی خود شیء user وجود داره یا نه، میتونی از این متد استفاده کنی:
const user = {
name: 'علی',
age: 30
};
console.log(user.hasOwnProperty('name')); // خروجی: true
console.log(user.hasOwnProperty('toString')); // خروجی: false
میبینی؟ متد toString() در واقع از زنجیره پروتوتایپ ارث برده شده و مستقیماً روی شیء user نیست، برای همین خروجی false میشه.
چند نمونه از کاربردهای hasOwnProperty()
استفاده از hasOwnProperty() فقط برای بررسی وجود خصوصیت نیست. این متد در سناریوهای مختلفی به کمکت میاد. مثلاً وقتی داری روی اشیاء کار میکنی و میخوای از تداخل بین خصوصیات خودت و خصوصیات ارثبری شده جلوگیری کنی، این متد یک نجاتدهندهست.
چند تا از مهمترین کاربردهاش رو با هم مرور کنیم:
- پیمایش امن اشیاء: وقتی داری با حلقهها مثل
for...inروی خصوصیات یک شیء میگردی، ممکنه خصوصیات ارثبری شده هم بهت نمایش داده بشه. با استفاده ازhasOwnProperty()میتونی فقط خصوصیات اصلی رو بررسی کنی. - اعتبارسنجی دادهها: فرض کن یک شیء از یک API دریافت کردی و میخوای مطمئن بشی که یک خصوصیت خاص در اون وجود داره.
hasOwnProperty()بهترین راه برای این کاره. - بررسی خصوصیات کلاسها: اگه از کلاسها استفاده میکنی، این متد بهت اجازه میده که بین خصوصیات نمونه (instance) و خصوصیات ارثبری شده تمایز قائل بشی.
با انجام این کوییز، میتونی میزان مهارت و تسلط خودت رو در مورد این متد بسنجی و همزمان اطلاعات خوبی هم به دست بیاری. سوالات این آزمون در مورد متد hasOwnProperty() هستن و موضوعاتی مثل تفاوت این متد با بررسی مستقیم (user.name !== undefined)، کارکرد اون در اشیاء تو در تو، و استفاده از اون در کنار حلقهها رو پوشش میده.
با شرکت در این آزمون، متوجه میشی که چقدر به مفاهیم عمیقتر جاوااسکریپت مسلط هستی و چه جاهایی نیاز به تمرین بیشتر داری.
جدول مقایسه با روشهای مشابه
| ویژگی | hasOwnProperty() |
بررسی (key in object) |
|---|---|---|
| کاربرد | بررسی خصوصیات مستقیم شیء | بررسی خصوصیات مستقیم و ارثبری شده |
| قابلیت اطمینان | بسیار دقیق و امن | ممکن است شامل خصوصیات ارثبری شده باشد |
| استفاده در حلقهها | عالی برای فیلتر کردن | مناسب برای پیمایش کلی |
خب، حالا که با این متد کاربردی آشنا شدی، وقتشه که دانشت رو محک بزنی. روی دکمه شروع کلیک کن و وارد این چالش هیجانانگیز در دنیای جاوااسکریپت شو.