برنامه نویسی

قابل تغییر یا تغییرناپذیر: درک یین و یانگ جاوا اسکریپت

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

بیایید این مفاهیم را بیشتر بررسی کنیم و ببینیم چگونه می توانند روی کد ما تأثیر بگذارند.

تغییرپذیری

در جاوا اسکریپت، اکثر اشیا به طور پیش فرض قابل تغییر هستند. این بدان معنی است که می توانید ویژگی های آنها را تغییر دهید، ویژگی های جدید اضافه کنید یا حتی ویژگی ها را حذف کنید. برای مثال کد زیر را در نظر بگیرید:


let person = {
  name: "John",
  age: 30,
};

person.age = 31;
console.log(person);


وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

در این مثال، ما در حال تغییر مقدار ویژگی سنی شی شخص هستیم. این امکان پذیر است زیرا اشیاء در جاوا اسکریپت قابل تغییر هستند.

در حالی که تغییرپذیری می تواند در موارد خاص مفید باشد، می تواند منجر به رفتار غیرمنتظره نیز شود. کد زیر را در نظر بگیرید:

let arr1 = [1, 2, 3];
let arr2 = arr1;
arr2.push(4);

console.log(arr1); // Output: [1, 2, 3, 4]

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

در این مثال، ما در حال ایجاد دو آرایه هستیم arr1 و arr2. سپس اختصاص می دهیم arr1 به arr2، به این معنی که هر دو به یک شی اشاره می کنند. سپس یک عنصر جدید به آن اضافه می کنیم arr2، که آن را نیز اصلاح می کند arr1 زیرا آنها یک شی هستند. این می تواند منجر به اشکالات غیرمنتظره در کد ما شود.

تغییرناپذیری

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

برای مثال کد زیر را در نظر بگیرید:

let str = "Hello";
str[0] = "h";
console.log(str); // Output: "Hello"

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

در این مثال، ما سعی می کنیم کاراکتر اول را تغییر دهیم str متغیر از “H” تا “h”. با این حال، از آنجایی که رشته ها در جاوا اسکریپت تغییر ناپذیر هستند، این هیچ تاثیری بر مقدار آن ندارد str.

تغییرناپذیری می تواند در موارد خاصی مفید باشد زیرا می تواند به جلوگیری از تغییرات غیرمنتظره در کد ما کمک کند. برای مثال کد زیر را در نظر بگیرید:

let arr1 = [1, 2, 3];
let arr2 = [...arr1, 4];

console.log(arr1); // Output: [1, 2, 3]
console.log(arr2); // Output: [1, 2, 3, 4]

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

در این مثال، ما در حال ایجاد یک آرایه جدید هستیم arr2 با استفاده از عملگر spread (…) برای کپی کردن عناصر arr1 و اضافه کردن یک عنصر جدید به پایان. این یک آرایه جدید ایجاد می کند و از اصلی خارج می شود arr1 بدون تغییر

نتیجه

درک مفاهیم تغییرپذیری و تغییرناپذیری برای نوشتن کد قابل اعتماد و بدون اشکال در جاوا اسکریپت مهم است. در حالی که تغییرپذیری می تواند در موارد خاص مفید باشد، همچنین می تواند منجر به رفتار غیرمنتظره و اشکالات شود. از سوی دیگر، تغییرناپذیری می‌تواند به جلوگیری از تغییرات غیرمنتظره در کد ما کمک کند و آن را قابل اعتمادتر کند.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا