پاموه

متد Object.freeze() و Object.seal() - آزمون جاوااسکریپت

تعداد سوال 12
قیمت رایگانــ
زمانسنج ندارد
رده‌سنی همه سنین
وضعیت فعال
نظرات ندارد

این کوییز آنلاین در مورد زبان برنامه نویسی جاوااسکریپت هست، که به طور دقیق‌تر درباره متد‌های Object.freeze() و Object.seal() طراحی شده. این آزمون به تو کمک می‌کنه تا ببینی چقدر به این مفاهیم مسلط هستی و همزمان دانش جدیدی هم به دست بیاری.

متد Object.freeze() و Object.seal() - آزمون جاوااسکریپت

متد Object.freeze() و Object.seal(): تفاوت‌ها و کاربردها

اگر برنامه‌نویس جاوااسکریپت باشی، حتماً با مفهوم تغییرپذیری یا mutability در آبجکت‌ها آشنایی داری. گاهی اوقات لازم میشه که یک آبجکت رو قفل کنی تا کسی نتونه محتویات اون رو تغییر بده.

اینجا هست که متد‌های Object.freeze() و Object.seal() به کمکت میان. این دو متد شبیه هم به نظر می‌رسن، ولی تفاوت‌های کلیدی دارن که دونستن اونها خیلی مهمه.

با شرکت در این کوییز، می‌تونی مهارت و تسلط خودت رو در مورد متد Object.freeze() و Object.seal() بسنجی و همزمان اطلاعات خوبی در مورد این دو متد کاربردی به دست بیاری.

سؤالات آزمون طوری طراحی شدن که هم جنبه‌های نظری رو پوشش بدن و هم کاربردهای عملی رو.


Object.freeze(): انجماد کامل آبجکت

وقتی از متد Object.freeze() روی یک آبجکت استفاده می‌کنی، در واقع اون آبجکت رو به طور کامل منجمد می‌کنی. بعد از این کار، دیگه هیچکس نمی‌تونه هیچ تغییری روی اون آبجکت ایجاد کنه.

نه می‌تونی پراپرتی جدید اضافه کنی، نه می‌تونی پراپرتی‌های موجود رو حذف کنی و نه حتی می‌تونی مقادیر اونها رو عوض کنی. این متد یک سطح از تغییرناپذیری رو فراهم می‌کنه که حتی در سطح پراپرتی‌های داخلی هم اعمال میشه.

فرض کن یک آبجکت به اسم user داری. اگر روی اون Object.freeze(user) رو اجرا کنی، هیچکدوم از عملیات‌های زیر مجاز نیست:

  • تغییر مقدار user.name
  • حذف user.age
  • اضافه کردن پراپرتی جدیدی مثل user.city

const user = {
    name: 'Sina',
    age: 30
};
Object.freeze(user);

// این دستور هیچ تاثیری ندارد
user.age = 31;
console.log(user.age); // 30

// این دستور هم هیچ تاثیری ندارد و خطا نمی‌دهد
user.city = 'Tehran';
console.log(user.city); // undefined

Object.seal(): مهر و موم کردن آبجکت

حالا بریم سراغ Object.seal(). این متد نسبت به Object.freeze() کمی انعطاف‌پذیرتره. وقتی یک آبجکت رو مهر و موم می‌کنی، نمی‌تونی پراپرتی جدیدی به اون اضافه یا پراپرتی‌های موجود رو حذف کنی.

اما یک فرق اساسی داره: می‌تونی مقدار پراپرتی‌های موجود رو تغییر بدی. به عبارتی، ساختار آبجکت ثابت می‌مونه ولی محتوای اون می‌تونه تغییر کنه.

برای مثال، اگر همون آبجکت user رو با Object.seal() مهر و موم کنی، می‌تونی مقدار user.age رو تغییر بدی، ولی نمی‌تونی پراپرتی city رو بهش اضافه کنی.


const user = {
    name: 'Sina',
    age: 30
};
Object.seal(user);

// این دستور مجاز است
user.age = 31;
console.log(user.age); // 31

// این دستور مجاز نیست
delete user.name;
console.log(user.name); // 'Sina'

// این دستور هم مجاز نیست و هیچ تاثیری ندارد
user.city = 'Esfahan';
console.log(user.city); // undefined

یک جدول برای مقایسه بهتر

ویژگی Object.freeze() Object.seal()
اضافه کردن پراپرتی مجاز نیست مجاز نیست
حذف پراپرتی مجاز نیست مجاز نیست
تغییر مقدار پراپرتی مجاز نیست مجاز است

این کوییز درباره چیه؟

سوالات این آزمون درباره مفاهیمی مثل تفاوت بین Object.freeze() و Object.seal()، کاربردهای هر کدوم و همچنین مثال‌های عملی در جاوااسکریپت هست.

برای مثال، ممکنه ازت بپرسم که در چه حالتی از Object.freeze() استفاده می‌کنی یا نتیجه اجرای یک تکه کد شامل این متدها چی میشه. با شرکت در این آزمون، متوجه میشی که چقدر در مورد مدیریت تغییرپذیری آبجکت‌ها در جاوااسکریپت دقیق هستی.

این آزمون یک فرصت خوبه تا دانش خودت رو بسنجی و نقاط ضعف خودت رو شناسایی کنی.


حالا نوبت توئه!

این آزمون یک راه عالی برای محک زدن دانش تو درباره Object.freeze() و Object.seal() هست. روی دکمه شروع کلیک کن و ببین چقدر در این زمینه مهارت داری.

تعداد سوال 12
قیمت رایگانــ
زمانسنج ندارد
رده‌سنی همه سنین
وضعیت فعال
نظرات ندارد
نظرات
به عنوان اولین نفر لطفا نظرت رو به ما بگو