JavaScript đang thống trị web – và ECMAScript, cốt lõi của ngôn ngữ này, đang ngày càng hoàn thiện. Phiên bản đặc tả mới (ES6 hoặc JS2), dự kiến ra mắt vào giữa năm nay, mang đến nhiều cải tiến mà người dùng đã có thể thử nghiệm. Firefox hiện đang cung cấp hỗ trợ tốt nhất , nhưng việc sử dụng polyfill thông qua các trình biên dịch như Google Traceur cũng khả thi. Sau đây là tổng quan ngắn gọn về các tính năng mới của ES6.
Từ khóa mới let thực hiện nhiều việc tốt hơn var : phạm vi hiện hoạt động chính xác giống như trong các ngôn ngữ khác (C/C++, Java), đó là lý do tại sao các khối if giờ đây cũng có phạm vi riêng. Hoisting, tức là mức độ ưu tiên của các khai báo biến (không phải phép gán giá trị) trong phạm vi tương ứng, cũng sẽ được sửa chữa:
console.log(x); var x = 'foo'; // undefined console.log(y); let y = 'bar'; // not initialized
Số lượng đổi mới khác rất lớn: hằng số (const), giá trị mặc định cho hàm (function pow(a,b=2) { return Math.pow(a,b); }), ký hiệu mới cho hàm (let pow = (a,b=2) => Math.pow(a,b);), nhiều hàm mới (repeat(), contains(), startedWith(), find(), findIndex()), cấu trúc vòng lặp mới cho ... of.
Cũng đáng đề cập là các kiểu dữ liệu mới Set, Map, Proxy và Symbol, khả năng nhập (các phần của các tệp khác) JavaScript bằng tính năng nhập và cú pháp trực quan mới cho các lớp và tính kế thừa. Nhưng thường cũng có những điều nhỏ nhưng được chờ đợi từ lâu như khả năng ngắt dòng trong chuỗi ký tự (lưu ý các dấu ngoặc kép đặc biệt):
`foo bar`
JavaScript từ lâu đã không chỉ là công cụ để thực hiện những thủ thuật nhỏ trên website – nó được sử dụng để tạo ra các ứng dụng web mạnh mẽ, hiệu năng cao, tốt không kém gì các ứng dụng trên máy tính để bàn. Với vô số tính năng mới hữu ích và sự hỗ trợ hiện có cho ES6, việc lập trình trở nên thú vị hơn gấp đôi.
Có ai lại không muốn kiểm tra sự bằng nhau của hai số với sự trợ giúp của hằng số mới Number.EPSILON , mà giá trị của nó mang sự khác biệt giữa 1 và giá trị dấu phẩy động cao hơn tiếp theo?
let cmp = (a,b) => Math.abs(a-b) < Number.EPSILON;