جاوا اسکریپت بر وب تسلط دارد - و ECMAScript، هسته اصلی این زبان، در حال بلوغ است. مشخصات جدید (ES6 یا JS2)، که انتظار میرود در اواسط سال منتشر شود، نوآوریهای متعددی را به همراه دارد که از قبل قابل آزمایش هستند. فایرفاکس در حال حاضر بهترین پشتیبانی را ارائه میدهد، اما polyfillها از طریق transpilerهایی مانند Google Traceur نیز امکانپذیر هستند. در ادامه، مروری مختصر بر ویژگیهای جدید ES6 خواهیم داشت.
کلمه کلیدی جدید اجازه می دهد بسیاری از کارها را بهتر از var انجام دهد: دامنه اکنون دقیقاً مانند سایر زبان ها (C/C++، جاوا) عمل می کند، به همین دلیل است که اگر بلوک ها اکنون دامنه خاص خود را دارند. بالا بردن، یعنی اولویت بندی اعلامیه های متغیر (نه تخصیص ارزش) در محدوده مربوطه نیز تعمیر خواهد شد.:
console.log(x); var x = 'foo'; // undefined console.log(y); let y = 'bar'; // not initialized
تعداد نوآوریهای دیگر زیاد است: ثابتها (const)، مقادیر پیشفرض برای توابع (تابع pow(a,b=2) { return Math.pow(a,b); })، یک نماد جدید برای توابع (بگذارید pow = (a,b=2) => Math.pow(a,b);)، انواع توابع جدید (repeat find))، (W) ساخت حلقه برای ... از.
همچنین میتوان به انواع دادههای جدید Set، Map، Proxy و Symbol، امکان وارد کردن (بخشهایی از سایر فایلهای جاوا اسکریپت) با import و یک نحو بصری جدید برای کلاسها و وراثت اشاره کرد. اما اغلب موارد کوچک اما مدتها مورد انتظار مانند امکان شکست خط در حروف الفبای رشتهها نیز وجود دارد (به علامتهای نقل قول خاص توجه کنید):
`foo bar`
جاوا اسکریپت مدتهاست که چیزی بیش از ابزاری برای ترفندهای جزئی وبسایت بوده است - از آن برای ایجاد برنامههای وب قدرتمند و با کارایی بالا استفاده میشود که به خوبی همتایان دسکتاپ خود هستند. با وجود ویژگیهای جدید مفید فراوان و پشتیبانی موجود از ES6، برنامهنویسی دو برابر لذتبخشتر شده است.
چه کسی همیشه نخواسته است با کمک عدد ثابت جدید برابری دو عدد را بررسی کند. EPSILON ، مقدار آن تفاوت بین 1 و مقدار بعدی شناور بالاتر است؟
let cmp = (a,b) => Math.abs(a-b) < Number.EPSILON;