تفاوت immutable | mutable در ✌️
در ابتدا برای اینکه تفاوت mutable و immutable رو درک کنیم، نیازه که یک دانش کلی از primitive type ها و reference type ها داشته باشیم. پس بریم که اول یک یادآوری راجب این دو تا داشته باشیم😉
🟡 Primitive type ها چی هستن؟
در جاوا اسکریپت، primitive types شامل string ، Boolean و number و undefined میشه. این نوع دیتا ها در حافظه به صورت مستقل از هم ذخیره میشن و تغییرات بر روی یکی از این دادهها، تاثیری بر روی دادههای دیگه نمیذاره که جلوتر با مثال بهتر درکشون میکنید.
🟡 Refrence type ها چی هستن؟
در واقع reference types شامل array ،object و function میشه. در این حالت، دادهها به صورت cursor در حافظه ذخیره میشن و تغییرات بر روی یک متغیر، میتونه تاثیر گذار بر دادههای دیگه باشه.
⚡️ اما تفاوت mutable و immutable
در جاوا اسکریپت، immutable ها primitive types هستن، یعنی یکبار ایجاد میشن و قابل تغییر نیستن، به عنوان مثال:
در مثال بالا مشاهده کردیم، که در صورت اختصاص دادن مقدار name به متغیر name2، و تغییر دادن مقدار متغیر name2، هیچ تغییری در متغیر name ایجاد نمیشه و همون مقدار اولیه log گرفته میشه.
‼️ اما mutable ها reference types هستن، یعنی مقدار اونا قابل تغییره، به عنوان مثال:
در مثال بالا با اختصاص دادن مقدار آبجکت person به متغیر person2، و تغییر دادن پراپرتی ها و مقادیر person2، آبجکت prerson هم تغییر میکنه و یک مقدار مساوی log گرفته میشه.
✅ بنابراین تفاوت اصلی بین mutable و immutable در قابلیت تغییر مقادیر هست. این تفاوت میتونه در مدیریت دادهها و پیاده سازی الگوریتمهای مختلف تاثیرگذار باشه.
به طور کلی، استفاده از immutable types برای پایداری و پیچیدگی کمتر در پروژه مناسبه، در حالی که mutable types برای عملکردهای پویا و تغییرپذیر مناسبه که نسبت به نیازتون، میتونید ازشون استفاده کنید🏖️
#js #refrence #primitive
@CodeModule
در ابتدا برای اینکه تفاوت mutable و immutable رو درک کنیم، نیازه که یک دانش کلی از primitive type ها و reference type ها داشته باشیم. پس بریم که اول یک یادآوری راجب این دو تا داشته باشیم
در جاوا اسکریپت، primitive types شامل string ، Boolean و number و undefined میشه. این نوع دیتا ها در حافظه به صورت مستقل از هم ذخیره میشن و تغییرات بر روی یکی از این دادهها، تاثیری بر روی دادههای دیگه نمیذاره که جلوتر با مثال بهتر درکشون میکنید.
در واقع reference types شامل array ،object و function میشه. در این حالت، دادهها به صورت cursor در حافظه ذخیره میشن و تغییرات بر روی یک متغیر، میتونه تاثیر گذار بر دادههای دیگه باشه.
در جاوا اسکریپت، immutable ها primitive types هستن، یعنی یکبار ایجاد میشن و قابل تغییر نیستن، به عنوان مثال:
let name = 'john';
let name2 = name;
console.log(name); //john
console.log(name2); //john
let name2 = 'doe';
console.log(name); //john
console.log(name2); //doe
در مثال بالا مشاهده کردیم، که در صورت اختصاص دادن مقدار name به متغیر name2، و تغییر دادن مقدار متغیر name2، هیچ تغییری در متغیر name ایجاد نمیشه و همون مقدار اولیه log گرفته میشه.
let person = {
name: 'john',
age: 22,
};
let person2 = person;
console.log(person); //{name:'john' , age:22}
console.log(person2); //{name:'john' , age:22}
let person2.name = 'doe';
console.log(person); // { name: 'doe', age: 22 }
onsole.log(person2); // { name: 'doe', age: 22 }
در مثال بالا با اختصاص دادن مقدار آبجکت person به متغیر person2، و تغییر دادن پراپرتی ها و مقادیر person2، آبجکت prerson هم تغییر میکنه و یک مقدار مساوی log گرفته میشه.
به طور کلی، استفاده از immutable types برای پایداری و پیچیدگی کمتر در پروژه مناسبه، در حالی که mutable types برای عملکردهای پویا و تغییرپذیر مناسبه که نسبت به نیازتون، میتونید ازشون استفاده کنید
#js #refrence #primitive
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡9🔥4😁1