ویژگیهای جدید جاوااسکریپت در ES2025 و ES2026
خلاصهٔ کاملتر
جاوااسکریپت داره با سرعت خوبی پیش میره. ES2025 در ژوئن ۲۰۲۵ رسماً تأیید شد و ES2026 هم در مرحله candidate قرار داره. اگه میخوای بدونی الان دقیقاً چه چیزی به زبان اضافه شده و چی داره میآد، این مقاله یه مرور کامل و خوندنی از این تغییرات ارائه میده.
اول از همه، بهتره بدونیم جاوااسکریپت چطور بهروز میشه. همه مرورگرها موتور جاوااسکریپت مخصوص خودشون رو دارن؛ Chrome از V8 استفاده میکنه، Safari از JavaScriptCore، و Firefox از SpiderMonkey. دلیل اینکه همه این موتورها یه جور کار میکنن اینه که همگی یه مشخصه مشترک به اسم ECMAScript رو پیادهسازی میکنن. این مشخصه توسط کمیته TC39 نگهداری میشه که نمایندگانی از گوگل، اپل، موزیلا، مایکروسافت و شرکتهای دیگه داره. هر پروپوزال از Stage 0 تا Stage 4 پیش میره و وقتی به Stage 4 رسید، آماده شیپ شدنه.
مهمترین افزوده ES2025، Iterator helpers هستن. Iterator یه پروتکل استانداردِ که بهت اجازه میده روی مقادیر مختلف یکییکی پیمایش کنی؛ از Set و Map گرفته تا NodeList و generator functions. مشکل قبلی اینه بود که Iterator هیچ متد کمکی مثل map یا filter نداشت و مجبور بودی اول همه چیز رو به آرایه تبدیل کنی. این یعنی مصرف حافظه بالاتر و ناسازگاری با iteratorهای بینهایت یا streaming. حالا با Iterator helpers میتونی مستقیماً روی هر iterator کار map، filter، take، drop و خیلی چیزهای دیگه رو انجام بدی.
متدهای جدید Set هم یه اضافه جذابه. قبلاً برای کارهایی مثل اشتراک، اتحاد یا تفاضل دو Set مجبور بودی یه حلقه بنویسی یا از کتابخونه استفاده کنی. حالا متدهایی مثل intersection، union، difference، و symmetricDifference مستقیماً روی Set در دسترسن.
از دیگر ویژگیهای ES2025 میشه به JSON modules اشاره کرد که import مستقیم فایلهای JSON رو ممکن میکنه. Promise.try هم یه utility سادهست که بهت اجازه میده یه تابعی رو که ممکنه sync یا async باشه داخل یه Promise بپیچی تا error handling یکدست بشه. RegExp.escape برای escape کردن کاراکترهای خاص در regex اضافه شده، و Float16Array هم برای کار با دادههای ML و گرافیک به خانواده Typed Arrays پیوسته.
برای ES2026، چند ویژگی جالب در راهه. Math.sumPrecise برای جمع زدن اعداد floating-point بدون خطای تجمعی اضافه میشه. Uint8Array حالا میتونه مستقیماً با base64 و hex کار کنه. Error.isError یه روش مطمئن برای چک کردن اینکه یه مقدار واقعاً Error هست یا نه فراهم میکنه. Map.getOrInsert که همون Upsert هستش، اجازه میده مقداری رو از Map بگیری و اگه نبود مقدار پیشفرض بذاری. Array.fromAsync هم مثل Array.from هستش ولی برای async iterableها کار میکنه.
Temporal، using keyword، و import defer به ES2026 نرسیدن ولی پیادهسازیشون در مرورگرها و polyfillها به اندازهای بالغه که الان هم میشه ازشون استفاده کرد. Temporal بهخصوص خیلی مهمه چون جایگزین Date میشه که سالهاست درد سر توسعهدهندههاست.
در نهایت، مقاله یه نکته جالب هم داره: چطور AI toolهایی مثل Claude Code رو راهنمایی کنیم که از این ویژگیهای جدید استفاده کنن، چون مدلهای زبانی ممکنه هنوز به روشهای قدیمی کد بنویسن.
نکات کلیدی:
- ES2025 در ژوئن ۲۰۲۵ تأیید شد و ES2026 در مرحله candidate است
- Iterator helpers بزرگترین تغییر ES2025 هستن و امکان map، filter و غیره رو مستقیماً روی iterator میدن
- متدهای جدید Set مثل union، intersection و difference اضافه شدن
- Promise.try، RegExp.escape، JSON modules و Float16Array هم در ES2025 هستن
- ES2026 شامل Math.sumPrecise، Map.getOrInsert، Array.fromAsync و Error.isError میشه
- Temporal (Stage 4)، using و import defer هنوز به ES2026 نرسیدن ولی قابل استفادهان
- TC39 با نمایندگان گوگل، اپل، موزیلا و مایکروسافت تصمیمگیری میکنه




