توابع خالص (pure functions) دو ویژگی اصلی دارند :
1- side effects free
هیچ اثر جانبی قابل مشاهده بیرون از scope تابع ایجاد نمی کند.به این معنی که هیچ تغییری متغیرهای سراسری ایجاد نمی کند.
2- referential transparency
یا همان شفافیت مرجعی ، به این معنی است که میتوان هر تابع خالص را با نتیجهاش جایگزین کرد، بدون اینکه رفتار برنامه تغییر کند. به عبارتی دیگر، اگر در یک قسمت از کد به تابعی اشاره کنیم، میتوانیم بهجای آن، مقدار خروجی تابع را قرار دهیم و برنامه هنوز به درستی کار خواهد کرد.
توابع خالص به ما این امکان را میدن که کدهای قابل اطمینانتر، قابل تستتر و قابل نگهداریتری بنویسیم.با حذف کردن اثرات جانبی و دادن شفافیت به مرجع، میتونیم کد رو توی واحدهای کوچیکتر تست کنیم. اینجوری خیلی راحتتر میتونیم منطق برنامه رو درک کنیم و از بازنویسیهای پیچیده و دردسرای اشکالزدایی جلوگیری کنیم. این ویژگیها به بهبود کیفیت کد کمک میکنه و باعث افزایش کارایی و کاهش خطاها در طول فرآیند توسعه میشه.