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